POJ 1163 The Triangle (数塔)
2015-10-08 14:05
381 查看
题目大意
一个n层的数塔,从第一层走到最后一层,沿途经过的数的最大值分析
dp[i][j]表示到达(i , j)时的最大值状态转方程
dp[i][j] = max(dp[i-1][j-1] , dp[i-1][j]) + a[i][j];
代码
#include <iostream>
#include <cstring>
using namespace std;
const int maxn = 360;
int dp[maxn][maxn]; //dp[i][j]表示到达(i,j)时的最大值
int a[maxn][maxn];
int main()
{
int n;
while(cin >> n)
{
for(int i = 1; i <= n; i++)
for(int j = 1; j <= i; j++) cin >> a[i][j];
memset(dp , 0 , sizeof(dp));
//dp[i][j] = max(dp[i-1][j-1] , dp[i-1][j]) + a[i][j];for(int i = 1; i <= n; i++) for(int j = 1; j <= i; j++)
dp[i][j] = max(dp[i-1][j-1] , dp[i-1][j]) + a[i][j];int ans = dp
[1];
for(int i = 2; i <= n; i++) ans = max(ans , dp
[i]);
cout << ans << endl;
}
return 0;
}
相关文章推荐
- Xpage重复控件的使用(repeat)
- arm-linux-gcc(ubuntu)安装
- HttpClient4.3 第二次封装
- el capitan 绕过rootless
- linux下配置网络
- Jquery Select 下拉框处理
- 0921词法分析
- 二维数组中的查找(剑指offer)
- dom4j方式写入xml
- FMDB
- 代理设计模式
- text-overflow:ellipsis
- 关于职业生涯规划的会议记录
- 职场新人,你进入职场应该规划的事
- 字符串的正则表达式
- linux——创建用户及所属组总结
- YII1升级到YII2的注意事项
- LeetCodeOJ.Longest Substring Without Repeating Characters
- 最长递增子序列
- 数学问题和狼追兔问题