HDOJ 2084 数塔 【dp】
2015-08-19 21:44
375 查看
HDOJ 2084 数塔 【dp】
状态是从当前位置出发的最大和
转移方程是当前的数值 加上下面两个方向的位置开始的最大和
即dp[i][j] = a[i][j] + max(dp[i+1][j], dp[i+1][j+1]);
#include<iostream> #include<algorithm> #include<cstdio> #include<cstring> using namespace std; #define clr(c) memset(c, 0, sizeof(c)); const int MAXL = 105; int C, N; int a[MAXL][MAXL]; int dp[MAXL][MAXL]; void Resolve(){ clr(dp); for(int j = 1; j <= N; j++) dp [j] = a [j]; for(int i = N-1; i >= 1; i--){ for(int j = 1; j <= i; j++){ dp[i][j] = a[i][j] + max(dp[i+1][j], dp[i+1][j+1]); } } // for(int i = 1; i <= N; i++){ // for(int j = 1; j <= i; j++){ // printf("%d ", dp[i][j]); // } // printf("\n"); // } } int main(){ clr(a); scanf("%d", &C); while(C--){ scanf("%d", &N); for(int i = 1; i <= N; i++){ for(int j = 1; j <= i; j++){ scanf("%d", &a[i][j]); } } Resolve(); printf("%d\n", dp[1][1]); } return 0; }
版权声明:本文为博主原创文章,未经博主允许不得转载。
相关文章推荐
- 关于c++派生类构造函数的思考
- 2016 360笔试题------找第一个只出现一次的字符
- Servlet 工程 web.xml 中的 servlet 和 servlet-mapping 标签
- R语言入门基础
- ZOJ 1109 Language of FatMouse
- POJ1850——Code
- ubuntu12.04更新时签名错误(BADSIG 40976EAF437D05B5)
- poj1734(floyd算法)
- SVN使用小结
- Java编程思想读书笔记:第2章 一切都是对象
- [150130] 1/7の魔法使い【日文硬盘版】带BT种子镜像版(带全CG存档+转码打开补丁+存档文件夹补丁)
- json数据转化成模型对象
- [洛谷1314]无序字母对
- SVN使用小结
- phaser游戏开发之基础知识1
- Sphinx多线程分布式搜索
- STL使用:deque双端队列
- Android性能优化(一),总纲
- LeetCode 27 Remove Element
- Intent