DP-POJ 1163 Triangle(简单数字三角形)
来源:互联网 发布:eclipse java窗体程序 编辑:程序博客网 时间:2024/05/01 21:14
题目链接:
http://poj.org/problem?id=1163
The Triangle
Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 45992 Accepted: 27831
Description
73 88 1 02 7 4 44 5 2 6 5(Figure 1)
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
573 88 1 0 2 7 4 44 5 2 6 5
Sample Output
30
Source
IOI 1994
题意:数字三角形。求第一层第一个数加到最后一层两个数的最大和(要求:一个数只能加下一层和他位置相邻的两个数)
思路:最基本的DP之一,本题主要考察状态转移方程。
核心代码:
num[i][j]+=max(num[i+1][j],num[i+1][j+1]);
滚动数组:从倒数第二层开始,加最后一层;一层算完之后,回滚到上一层,知道三角形顶部(相当于从下到上地更新数字三角形,更新之后num[0][0]就是最终答案)
注释的代码,可以帮助更好的理解滚动数组的原理
代码:
<pre name="code" class="cpp">#include<iostream>using namespace std;int main(){ int num[200][200],n; int i,j; cin>>n; for(i=0;i<n;i++){ for(j=0;j<=i;j++){ cin>>num[i][j]; } } for (i=n-2;i>=0;i--){ for (j=0;j<=i;j++){ num[i][j]+=max(num[i+1][j],num[i+1][j+1]); // cout<<num[i][j]<<" "; } //cout<<endl; } cout<<num[0][0]<<endl; return 0;}
革命尚未成功!
0 0
- DP-POJ 1163 Triangle(简单数字三角形)
- poj 1163/3176 数字三角形【简单DP】
- 动态规划入门-POJ 1163-The Triangle(数字三角形)
- poj 1163 The Triangle 数字三角形问题
- POJ 1163 数字三角形问题(DP)
- POJ 1163 The Triangle (简单DP)
- POJ 1163 The Triangle (简单 DP 数字的最大路线和)
- 【简单DP】 数字三角形
- POJ 1163 The Triangle (简单线性dp)
- POJ 1163 The Triangle 简单DP
- POJ 1163 The Triangle 简单DP
- POJ-1163 The Triangle 「数字三角形」(dfs+记忆化)
- POJ-1163 The Triangle 「数字三角形」(递推)
- NEFU 17 数字三角形(简单dp)
- POJ 1163(数字三角形)
- NEFU17 数字三角形 简单DP
- 蓝桥杯 数字三角形(简单DP)
- POJ 3176-Cow Bowling/POJ 1163-The Triangle(简单DP-数塔)
- Linux内核--网络栈实现分析(一)--网络栈初始化
- Swift3.0创建简单的TableView
- Python爬虫实例1-抓取百度贴吧
- java接口的继承问题
- HDU 1004
- DP-POJ 1163 Triangle(简单数字三角形)
- javascript学习笔记
- java默认的无参构造方法中应该注意的问题。
- 【codevs】基础题合集(三)
- 将文件内容先替换后复制
- Service 开机接受广播,启动服务的问题
- rabbitmq组件断链重连机制
- 链表的介绍及双向链表的实现c/c++/java
- Javascript 常用代码总结