poj 1163 The Triangle
2016-07-29 15:29
465 查看
The Triangle
Time Limit: 1000MS Memory Limit: 10000K
Total Submissions: 45028 Accepted: 27196
Description
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
(Figure 1)
Figure 1 shows a number triangle. Write a program that calculates the highest sum of numbers passed on a route that starts at the top and ends somewhere on the base. Each step can go either diagonally down to the left or diagonally down to the right.
Input
Your program is to read from standard input. The first line contains one integer N: the number of rows in the triangle. The following N lines describe the data of the triangle. The number of rows in the triangle is > 1 but <= 100. The numbers in the triangle, all integers, are between 0 and 99.
Output
Your program is to write to standard output. The highest sum is written as an integer.
【分析】
最基本的动态规划了,拒绝分析。
【代码】
Time Limit: 1000MS Memory Limit: 10000K
Total Submissions: 45028 Accepted: 27196
Description
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
(Figure 1)
Figure 1 shows a number triangle. Write a program that calculates the highest sum of numbers passed on a route that starts at the top and ends somewhere on the base. Each step can go either diagonally down to the left or diagonally down to the right.
Input
Your program is to read from standard input. The first line contains one integer N: the number of rows in the triangle. The following N lines describe the data of the triangle. The number of rows in the triangle is > 1 but <= 100. The numbers in the triangle, all integers, are between 0 and 99.
Output
Your program is to write to standard output. The highest sum is written as an integer.
【分析】
最基本的动态规划了,拒绝分析。
【代码】
#include <cstdio> #include <iostream> using namespace std; inline int max(int a,int b) {return a>b?a:b;} int a[101][101]; int dp[101][101]; int ans=0; int main() { int n; scanf("%d",&n); for (int i=1;i<=n;++i) for (int j=1;j<=i;++j) cin>>a[i][j]; for (int i=1;i<=n;++i) for (int j=1;j<=i;++j) dp[i][j]=max(dp[i][j],max(dp[i-1][j-1]+a[i][j],dp[i-1][j]+a[i][j])),ans=max(ans,dp[i][j]); cout<<ans<<endl; }
相关文章推荐
- 9大日常不良习惯致癌
- Images的标准用法
- Linux---uptime
- 解决Ubuntu下genymotion出现"Unable to load VirtualBox engine"问题
- iOS笔记 runtime Method Swizzle 方法交换//
- mysql自学笔记
- 关于CTE的使用,以及TOP/ORDER BY的执行顺序
- QT使用插件QAxWidget
- 搜索界面布局
- 修改Android MTK 开关机动画 log
- Hadoop 参数小结
- JS获取IP、MAC和主机名的几种方法
- 趣味100道C语言编程题num eight
- .net post url获取json
- 缺包报错
- PHP 引用 返回引用 静态变量的问题
- 选择恐惧症的福音!教你认清MVC,MVP和MVVM
- 苹果开发帐号说明
- 受限玻尔兹曼机(RBM)学习笔记
- 详解 Python 中的下划线命名规则