POJ-1163-The Triangle (动态规划1)
2015-07-14 10:50
337 查看
Description
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.
Sample Input
Sample Output
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.
Sample Input
5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5
Sample Output
30
#include <stdio.h> #include <algorithm> using namespace std; int n,a[101][101]; void dp() { for(int i=n; i>0; i--) { for(int j=1; j<=i; j++) { a[i-1][j]+=max(a[i][j],a[i][j+1]);//从底部开始逐个求出最大和 } } } int main() { while(scanf("%d",&n)!=EOF) { for(int i=1; i<=n; i++) { for(int j=1; j<=i; j++) { scanf("%d",&a[i][j]); } } dp(); printf("%d\n",a[1][1]); } return 0; }
相关文章推荐
- annotation学习
- 离散数学偏序关系哈斯图上(下)确界极小(大)值最大(小)值
- 表格布局
- iOS隐藏UITableview下面多余的tableviewcell的线条
- ruby redis使用
- 浅谈图片服务器的架构演进
- 利用Dummynet模拟恶劣网络环境
- Notepad++输入模式之修改模式、插入模式
- adb这点小事——远程adb调试
- Mac OS X更新VirtualBox以后Genymotion无法启动的一种情况
- Office2010安装需要MSXML版本6.10.1129.0的方法
- setContentView 设置布局文件时,cannot be resolved or is not a field
- D3+mysql 画Force图
- Ruby下WebDriver的相关操作指南
- notepad++多行标签设置方法
- C#读写txt文件的两种方法介绍
- 找呀志_通过开源框架引AsyncHttpClient上传文件
- 2.创建一个20个大小的随机数组,然后输入一个数,判断是否存在这个数
- 一件程序猿T恤的故事
- arcgis server发布时遇到的问题