AcWing898. 数字三角形

news2024/9/25 7:17:45

线性DP
在这里插入图片描述

董晓老师的讲解是从下标0开始算的,其实我们从1开始也可以,我感觉这里从1开始更好理解。是从下往上计算的。j负责列的计算,往上计算时逐步收窄横向的范围,i是纵向的从下往上算,
下面是内存布局
在这里插入图片描述
下面是逻辑上的布局
在这里插入图片描述
下面的代码是优化之后的代码,正常来说是f数组存储总和sum,w数组是存储输入的数字,然后f初始值是0的,每次加上w里面的数,
f [ i ] [ j ] = m a x ( f [ i + 1 ] [ j ] + w [ i ] [ j ] , f [ i + 1 ] [ j + 1 ] + w [ i ] [ j ] ) f[i][j] = max(f[i+1][j] + w[i][j] ,f[i+1][j+1] + w[i][j] ) f[i][j]=max(f[i+1][j]+w[i][j],f[i+1][j+1]+w[i][j])
优化为
f [ i ] [ j ] = m a x ( f [ i + 1 ] [ j ] , f [ i + 1 ] [ j + 1 ] ) + w [ i ] [ j ] f[i][j] = max(f[i+1][j] ,f[i+1][j+1] ) + w[i][j] f[i][j]=max(f[i+1][j],f[i+1][j+1])+w[i][j]
然后发现w数组和f数组作用雷同,直接用f存储输入的三角形,然后累加的时候覆盖上面的值就完事儿了
就直接优化为
f [ i ] [ j ] = m a x ( f [ i + 1 ] [ j ] , f [ i + 1 ] [ j + 1 ] ) + f [ i ] [ j ] f[i][j] = max(f[i+1][j],f[i+1][j+1]) + f[i][j] f[i][j]=max(f[i+1][j],f[i+1][j+1])+f[i][j] ;.
等价于
f [ i ] [ j ] + = m a x ( f [ i + 1 ] [ j ] , f [ i + 1 ] [ j + 1 ] ) f[i][j] += max(f[i+1][j],f[i+1][j+1]) f[i][j]+=max(f[i+1][j],f[i+1][j+1]);

#include<iostream>
#include<algorithm>
#define N 510
using namespace std;
int n;
int f[N][N];
int main(){
    cin >> n ;
    for(int i = 1;i <= n; ++i){
        for(int j = 1; j <= i; ++j){
            cin >> f[i][j];
        }
    }
    for(int i = n - 1;i >= 1; --i){
        for( int j = 1 ; j <= i ; ++j){
            f[i][j] += max(f[i+1][j],f[i+1][j+1]);
        }
    }
    cout << f[1][1];
    return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2089884.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【网络安全】打开这份“开学礼” 谨防骗子“冲业绩”

吉祥知识星球http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247485367&idx1&sn837891059c360ad60db7e9ac980a3321&chksmc0e47eebf793f7fdb8fcd7eed8ce29160cf79ba303b59858ba3a6660c6dac536774afb2a6330#rd 《网安面试指南》http://mp.weixin.qq.com/s…

今年读过最绝的一本书!《自然语言处理原理、方法与应用》,几乎把自然语言处理讲透了【附PDF】

书籍内容介绍&#xff1a; 本书系统阐述自然语言处理基础知识&#xff0c;以及自然语言处理高级模型应用等高级知识。 全书共11章&#xff1a;第1&#xff5e;5章为自然语言处理的基础知识&#xff0c;第6&#xff5e;11章将自然语言处理知识应用于实战。书中主要内容包括预训…

99% 的人都不知道,哪种 Python 循环最快?

大家好&#xff0c;在Python编程中&#xff0c;循环是我们经常使用的工具&#xff0c;用来重复执行一些代码块。我们通常会在 for 循环、while 循环和列表推导式中选择一种来解决问题。但你是否曾想过&#xff1a;哪种循环效率最高&#xff1f; 今天&#xff0c;我们就来一次轻…

Vue -- 总结 02

Vue脚手架 安装Vue脚手架&#xff1a; 在cmd中安装(输入):npm install -g vue/cli 如果下载慢或下载不了&#xff0c;可以安装(cmd输入)淘宝镜像:npm config set registry https://registry.npmmirror.com 用命令创建Vue项目 在要创建的vue项目的文件夹里输入 cmd 回车 创…

CSS 2D3D转换与动画

CSS 2D&3D转换与动画 字体图标 字体图标展示的是图标&#xff0c;本质是字体 处理简单的&#xff0c;颜色单一的图片&#xff0c;使用字体图标 使用&#xff1a; 下载&#xff1a;https://www.iconfont.cn/ 引入字体图标样式表 对应标签上classz增加对应的类名&…

使用pytest的 reporting特性来生成报告

特性 1.HTML 报告&#xff1a;使用 pytest-html 插件&#xff0c;你可以生成 HTML 格式的测试报告。只需在项目的 pytest.ini 文件中添加以下内容&#xff1a; [pytest] addopts --htmlreport.html然后&#xff0c;在运行 pytest 时&#xff0c;将会生成一个名为 report.htm…

Serilog文档翻译系列(二) - 设置AspNetCore应用程序

Serilog 日志记录适用于 ASP.NET Core。此包将 ASP.NET Core 的日志消息通过 Serilog 进行路由&#xff0c;使你可以将有关 ASP.NET 内部操作的信息写入与应用程序事件相同的 Serilog 接收器中。 安装并配置了 Serilog.AspNetCore 后&#xff0c;你可以直接通过 Serilog 或ASP…

CDS Association

CDS view Association 引入的缘由 CDS 视图不会被业务用户直接访问&#xff0c;而是会被 ABAP 程序、Fiori 应用程序或 BI 前端工具使用。假设在 5 个不同的表上使用 JOINS 创建了 CDS 视图&#xff0c;则每次触发此 CDS 视图时都会执行此 JOIN 条件。即使业务用户只查看 2 个…

十分钟弄懂最快的APP自动化工具uiautomator2

相信很多使用appium做过APP自动化的人都深有感触&#xff1a; appium运行慢、时间长uiautomatorviewer定位元素时得关掉appium server在低版本的appium上获取toast需要切换automationName 现在有一款自动化测试工具uiautomator2&#xff0c;它几乎完美的避免了以上的问题。简…

数据结构---循环队列---树的基本概念

目录 一、队列 1.1.队列 1.创建循环队列&#xff08;顺序结构&#xff09; 2.判断队满 3.判断队空 4.进队 5.出队 6.销毁 二、树 2.1.树的特点 2.2.基本概念 1.根节点 2.分支节点 3.叶节点 4.层 5.深度 6.高度 7.度 2.3.二叉树 1.特点 2.遍历方式 2.4.满二…

编程要由“手动挡”变“自动挡”了?Cursor+Claude-3.5-Sonnet,Karpathy大神点赞的AI代码神器!如何使用详细教程

Cursor情况简介 AI大神Andrej Karpathy都被震惊了&#xff01;他最近在试用 VS Code Cursor Claude Sonnet 3.5&#xff0c;结果发现这玩意儿比GitHub Copilot还好用&#xff01; Cursor在短短时间内迅速成为程序员群体的顶流神器&#xff0c;其背后的原因在于其默认使用Open…

在postman中使用javascript脚本生成sign签名

大多数线上api接口服务都需要提供签名才可以正常访问。虽然带来了安全&#xff0c;单有时为了快速验证接口的某个功能&#xff0c;就不得不编写代码&#xff0c;计算签名然后再请求。那么&#xff0c;使用postman提供的script功能&#xff0c;是否能实现签名计算功能吗&#xf…

HarmonyOS开发实战( Beta5版)滑动白块问题解决最佳实践

当应用程序需要使用列表显示内容时&#xff0c;通常会使用ListLazyForEach组件来实现。但是列表中需要显示耗时加载的内容时&#xff0c;仅依靠ListLazyForEach不足以获得最优的用户体验。例如显示在线网络图片&#xff0c;在弱网以及快速滑动浏览的场景下&#xff0c;由于来不…

哪种无线可视挖耳勺最实用?五大优良黑马机型测评

无线可视挖耳勺是热度特别高的个人清洁工具&#xff0c;不仅能够更加清晰地观察自己耳内的状况&#xff0c;从而更加安全、有效地清洁耳朵&#xff0c;可以发挥多种多样的作用&#xff0c;但也存在品牌繁杂的情况&#xff0c;其中还有一些不专业的产品。在市面上&#xff0c;我…

Win11 本地部署大模型 WebUI + ComfyUI

Open WebUI 是一个可扩展、功能丰富且用户友好的自托管 Web 用户界面&#xff08;WebUI&#xff09;&#xff0c;它被设计用于完全离线操作。该项目最初被称为 Ollama WebUI&#xff0c;后来更名为 Open WebUI。Open WebUI 的主要目的是为本地的大语言模型&#xff08;LLMs&…

一条执行24s的SQL产生7小时主备延时(案例详解)

前言 在之前的文章《一条执行24s的SQL竟产生7小时数据延时&#xff0c;数据库高可用做了个寂寞》中&#xff0c;我们描述了一个问题现象&#xff1a;一条在主库执行24秒的SQL语句&#xff0c;却导致了主从延时长达7小时。文章发布后&#xff0c;引发了小伙伴的热烈讨论&#x…

zabbix安装过程中仓库不可用问题解决

官网文档安装zabbix-server&#xff1a;Download and install Zabbix 安装zabbix-server过程中碰到如下报错&#xff1a; 导致原因是仓库url被qiang&#xff0c;创建如下仓库&#xff1a; 仓库文件&#xff1a; [centos-sclo-rh] nameCentOS-7 - SCLo rh baseurlhttps://mirr…

6 款 AI 视频全自动国产剪辑软件推荐

这两年刷抖音、B站&#xff0c;你是不是也常看到AI做的视频火得一塌糊涂&#xff0c;流量爆棚&#xff0c;还帮作者赚了钱?那没学过剪辑的你&#xff0c;想不想零成本、零门槛&#xff0c;也用AI软件赚点外快呢?告诉你&#xff0c;绝对行得通!现在AI技术牛了&#xff0c;网上…

顺序表

目录 1. 数据结构 2. 顺序表 1&#xff09;线性表 2&#xff09;顺序表分类 3、动态顺序表的实现 1. 数据结构 数据&#xff1a;常见的数值1、2、3、4.....、教务系统里保存的用户信息&#xff08;姓名、性别、年龄、学历等 等&#xff09;、网页里肉眼可以看到的信息&…

ARM体系结构及接口技术(四)LED灯实验---Makefile文件解析

文章目录 一、汇编版本二、C语言版本&#xff08;一&#xff09;Makefile文件1. .elf文件2. .map文件3. wildcard函数4. patsubst函数 &#xff08;二&#xff09;map.lds&#xff08;三&#xff09;start.S 一、汇编版本 # 工程名对应的变量 NAMEasm-led# 交叉编译器的前缀的…