poj1163The Triangle(简单DP)
2015-06-08 12:05
399 查看
转载请注明出处:http://blog.csdn.net/u012860063?viewmode=contents
题目链接:http://poj.org/problem?id=1163
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
简单DP例如以下:
题目链接:http://poj.org/problem?id=1163
----------------------------------------------------------------------------------------------------------------------------------------------------------
欢迎光临天资小屋 :http://user.qzone.qq.com/593830943/main
----------------------------------------------------------------------------------------------------------------------------------------------------------
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.
Sample Input
5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5
Sample Output
30
简单DP例如以下:
#include <iostream> #include <cstring> using namespace std; int n; int dp[117][117]; void DP(int dp[117][117]) { int i, j; for(i = n-1; i >= 0; i--) { for(j = 1; j <= i; j++) { dp[i][j]+=max(dp[i+1][j],dp[i+1][j+1]); } } } int main() { int i, j; while(cin >> n) { for(i = 1; i <= n; i++) { for(j = 1; j <= i; j++) { cin>>dp[i][j]; } } DP(dp); cout<<dp[1][1]<<endl; } return 0; }
相关文章推荐
- MYSQL建用户,建库,建表,授权
- 详解JavaScript中的every()方法
- 二叉树
- java高分局之JVM命令参数大全(高级运行时选项)
- CCIE/CCDE笔试考试政策
- 爱加密Android APk 原理解析
- GDB(二) 内存布局
- 暴风影音5免去广告的小技巧
- 搭建Kafka开发环境
- Failed to connect to remote VM. Connection refused. Connection refused: connect.
- [每天读书半小时] 2015-6-8 设计模式
- 1.2. chromium源代码分析 - chromiumframe - 入口函数
- Linux文件系统权限第二弹:特殊权限
- Python赋值语句后逗号的作用分析
- Cordys 顺序会签流程 Demo
- android v7 RecylerView
- Linux启动过程
- java实现Kafka的消费者示例
- 二分查找法
- Android studio 删除Recent project(最近项目)的方法