hiho第五周--数字三角形
来源:互联网 发布:linux stat 文件夹 编辑:程序博客网 时间:2024/06/08 18:08
数字三角形是最基础的DP问题
原题链接
数字三角形最好理解的就是从最低层往上走,走到顶时能够达到的最大值。对于每个位置(i, j)可以从(i + 1, j)和( i + 1, j + 1)两个位置到达,易知应当选择其中的大者。
定义状态:d(i,j)为从第i层j列出发到数字三角形最下层能达到的最大值
状态转移方程:d(i,j) = max( d(i + 1, j), d(i + 1, j + 1)) + a[i][j]
边界处理:最底层d(n, i)= a[n][i]
#include <cstdio>#include <algorithm>#define maxn 105using namespace std;int a[maxn][maxn], d[maxn]; // a数组保存数字三角形, d数组用于保存状态int main(){ int n; scanf( "%d", &n); for ( int i = 1; i <= n; i++){ for ( int j = 1; j <= i; j++){ scanf( "%d", &a[i][j]); } } for ( int i = 1; i <= n; i++){ d[i] = a[n][i]; // 边界处理,采用逆推 } for ( int i = n - 1; i >= 1; i--){ for ( int j = 1; j <= i; j++){ d[j] = max( d[j], d[j + 1]) + a[i][j]; // 采用滚动数组,节省空间,但要注意递推顺序 } } printf( "%d\n", d[1]); return 0;}
0 0
- hiho第五周--数字三角形
- 【hiho一下】第五周 数字三角形
- hiho一下 第五周 Hihocoder #1037 : 数字三角形
- hiho第五周——数字三角形(动态规划)
- 数字三角形 hiho一下第 5 周
- hiho 5 数字三角形
- HiHo 1037 数字三角形 (dp)
- hiho第五周
- hiho#1037 : 数字三角形 (动态规划)
- hiho一下 第五十六周
- hiho一下 第五十八周
- hiho一下 第五十八周
- hiho一下 第五十九周
- hihocoder第五周---动态规划入门级题目---数字三角形
- hiho刷题日记——第五天数字三角形
- 第五周 三角形类
- 第五周 三角形5
- hiho一下 第五十九周 Performance Log
- TensorFlow的安装
- AR/VR learning (1)--artoolkit在android studio 上的配置
- 01.Java 多线程 - 实例
- "围观"设计模式(18)--行为型之模板方法模式(TemplateMethod Pattern)
- mySql存储过程中用到的时间函数
- hiho第五周--数字三角形
- Poco c++学习资料
- 数据结构—连通图的遍历—DFS和BFS
- leetcode 99 Recover Binary Search Tree (python)
- 设置状态栏透明
- viewPager
- python之__name__
- 暑期学习计划
- python共享代码中setup参数测试window系统下