当前位置: 首页 > news >正文

【洛谷 P1216】[USACO1.5] [IOI1994]数字三角形 Number Triangles 题解(动态规划)

[USACO1.5] [IOI1994]数字三角形 Number Triangles

题目描述

观察下面的数字金字塔。

写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。

在上面的样例中,从 7 → 3 → 8 → 7 → 5 7 \to 3 \to 8 \to 7 \to 5 73875 的路径产生了最大权值。

输入格式

第一个行一个正整数 r r r ,表示行的数目。

后面每行为这个数字金字塔特定行包含的整数。

输出格式

单独的一行,包含那个可能得到的最大的和。

样例 #1

样例输入 #1

5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5

样例输出 #1

30

提示

【数据范围】
对于 100 % 100\% 100% 的数据, 1 ≤ r ≤ 1000 1\le r \le 1000 1r1000,所有输入在 [ 0 , 100 ] [0,100] [0,100] 范围内。

题目翻译来自NOCOW。

USACO Training Section 1.5

IOI1994 Day1T1


思路

,使用一个二维数组 a 存储数字三角形的值,使用一个二维数组 dp 存储从顶点到每个位置的最大路径和。

状态转移方程:

dp[i][j] = max(dp[i - 1][j - 1], dp[i - 1][j]) + a[i][j];

在初始化 dp 数组时,dp[0][0] 赋值为 0。

在每次状态转移时,判断上一行的相邻两个位置的最大值,加上当前位置的值,得到当前位置的最大路径和。

最后,遍历最后一行的所有位置,取最大值即可。


AC代码

#include <iostream>
#include <algorithm>
#define AUTHOR "HEX9CF"
using namespace std;const int N = 1e3 + 5;int r;
int ans;
int a[N][N];
int dp[N][N];int main()
{cin >> r;for (int i = 1; i <= r; i++){for (int j = 1; j <= i; j++){cin >> a[i][j];}}dp[0][0] = 0;for (int i = 1; i <= r; i++){for (int j = 1; j <= i; j++){dp[i][j] = max(dp[i - 1][j - 1], dp[i - 1][j]) + a[i][j];}}ans = 0;for (int j = 1; j <= r; j++){// cout << dp[r][j] << endl;ans = max(ans, dp[r][j]);}cout << ans << endl;return 0;
}
http://www.lryc.cn/news/182580.html

相关文章:

  • 十四天学会C++之第四天(面向对象编程基础)
  • 复习Day09:哈希表part02:141.环形链表、142. 环形链表II、454.四数相加II、383赎金信
  • Internet通过TCP/IP协议可以实现多个网络的无缝连接
  • 互联网Java工程师面试题·Dubbo 篇·第二弹
  • (c语言)经典bug
  • 用于工业物联网和自动化的 Apache Kafka、KSQL 和 Apache PLC4
  • 1.1.1开发基础-硬件-万用表
  • Mysql内置函数、复合查询和内外连笔记
  • 【VUE·疑难问题】定义 table 中每行的高度(使用 element-UI)
  • 【重拾C语言】四、循环程序设计(后判断条件循环、先判断条件循环、多重循环;典例:计算平均成绩、打印素数、百钱百鸡问题)
  • Linux 安装 Gitlab
  • stm32-SPI协议
  • 想要精通算法和SQL的成长之路 - 并查集的运用和案例(省份数量)
  • 解决内网拉取企微会话存档代理问题的一种办法
  • 二十二,加上各种贴图
  • 新版校园跑腿独立版小程序源码 多校版本,多模块,适合跑腿,外卖,表白,二手,快递等校园服务
  • SpringBoot banner 样式 自动生成
  • 回收站里面删除的照片如何恢复?
  • Qt model/view 理解 2
  • 【LeetCode热题100】--114.二叉树展开为链表
  • Java | Maven(知识点查询)
  • Vmware 静态网络配置
  • 【数据结构--八大排序】之希尔排序
  • Linux中生成so库的文件引用另一个so库问题的解决
  • EDI是连接原始电子商务和现代电子商务的纽带
  • 星宿UI2.4资源付费变现小程序源码 支持流量主
  • 代码随想录训练营二刷第四十六天 | 完全背包 518. 零钱兑换 II 377. 组合总和 Ⅳ
  • python安装第三方模块方法
  • 广西小贷公司设立及小贷牌照申请政策要求
  • PyTorch应用实战二:实现卷积神经网络进行图像分类