POJ1163DP
2015-11-30 22:08
211 查看
题意和解析,看代码最后部分#include <iostream>#include <cstdio>#include <cmath>using namespace std;int main(){int t,n;int dp[105][105];int a[105][105];//scanf("%d",&t);while(scanf("%d",&n)!=EOF){for(int i = 1 ; i <= n ; i++){for(int j = 1 ; j <= i ; j++){scanf("%d",&a[i][j]);}}for(int i = n ; i >= 1 ; i--){for(int j = 1 ; j <= i ; j++){if(i==n)dp[i][j]=a[i][j];else{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");// }printf("%d\n",dp[1][1]);}return 0;}/*Auther:LIUYAN2015.11.30数字三角形(POJ1163)73 88 1 02 7 4 44 5 2 6 5在上面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大。路径上的每一步都只能往左下或右下走。只需要求出这个最大和即可,不必给出具体路径。三角形的行数大于1小于等于100,数字为0 -99“人人为我”递推型动归程序a(i,j) : 第i行第j个数字(i,j从1开始算)dp(i,j) : 从a(i,j)到底边的各条路径中,最佳路径的数字之和。问题:求dp(1,1)100573 88 1 02 7 4 44 5 2 6 5*/
相关文章推荐
- 浅谈 Nim 中的“接口”
- date转String
- 使用指针的方式遍历图像数据
- 什么是对象?
- 20135310陈巧然家庭作业汇总[3.56 3.67 6.23 6.39.6.40 6.41]
- 欢迎使用CSDN-markdown编辑器
- 值得深思:美国感恩节78.3%的网购来自iOS
- git常用命令及技巧
- 特征表达——统计、hash、embedding
- 浅谈 Nim 中的“接口”
- JAVAWEB之自定义TAG开发二
- 终极解释: java方法传递参数的方式
- 第二个Sprint ------第四、五、六、七天
- 黑马程序员--集合框架(collection)
- 如何做一个匀速旋转的轮子
- 容器总结——无序容器
- 常用内部排序算法之一:归并排序
- Android常用控件之进度条(Progressbar)
- android 音视频直播
- jsp 百度编辑器配置 整合springmvc注意细节