IOI 1994 USACO 1.5 数字三角形 Number Triangles
来源:互联网 发布:linux 系统启动脚本 编辑:程序博客网 时间:2024/05/22 03:01
IOI 1994
USACO 1.5 数字三角形
Number Triangles
题目描述
观察下面的数字金字塔。
写一个程序来查找从最高点到底部任意处结束的路径,使路径经过数字的和最大。每一步可以走到左下方的点也可以到达右下方的点。
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
在上面的样例中,从7 到 3 到 8 到 7 到 5 的路径产生了最大
输入输出格式
输入格式:
第一个行包含 R(1<= R<=1000) ,表示行的数目。
后面每行为这个数字金字塔特定行包含的整数。
所有的被供应的整数是非负的且不大于100。
输出格式:
单独的一行,包含那个可能得到的最大的和。
输入输出样例
输入样例#1:
5
7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
输出样例#1:
30
说明
题目翻译来自NOCOW。
USACO Training Section 1.5
简单的二维动规,从下往上刷即可,不再赘述。
本题遵循状态转移方程:f[i][j]=max(f[i+1][j],f[i+1][j+1])+a[i][j];
代码
#include<iostream>#include<algorithm>using namespace std;int i,j,h,n;int f[2001][2001];int ans;int a[1001][1001];int r(){ int ans=0; char ch=getchar(); while(ch<'0'||ch>'9') { ch=getchar(); } while(ch>='0'&&ch<='9') { ans*=10; ans+=ch-'0'; ch=getchar(); } return ans;}int main(){ n=r(); for(i=1;i<n;i++) for(j=1;j<=i;j++) a[i][j]=r(); for(j=1;j<=n;j++) a[n][j]=f[n][j]=r(); for(i=n-1;i>=1;i--) for(j=1;j<=i;j++) { f[i][j]=max(f[i+1][j],f[i+1][j+1])+a[i][j]; } cout<<f[1][1]; return 0;}
阅读全文
0 0
- IOI 1994 USACO 1.5 数字三角形 Number Triangles
- 数字三角形【IOI 1994】
- USACO:1.5.1 Number Triangles 数字金字塔
- USACO 1.5 数字金字塔 Number Triangles
- USACO 1.5 Number Triangles
- USACO 1.5-Number Triangles
- USACO 1.5 Number Triangles
- Usaco 1.5.1 数字金字塔(Number Triangles)
- USACO 1.5 Number Triangles 数字金字塔(经典dp)
- USACO——Number Triangles 数字金字塔
- [USACO 1.5.1] Number Triangles
- USACO 1.5 Number Triangles (numtri)
- USACO Section 1.5 Number Triangles
- USACO Section 1.5 Number Triangles
- USACO 1.5.1 Number Triangles
- USACO-1.5.2-Number triangles
- USACO Section 1.5 Number Triangles
- 数字三角形 Number Triangles (顺推)
- nodejs解析xml字符串为对象
- 2017算法课.13(Binary Tree Preoder Traversal)
- 关于 Quartus II 13.1中调用ModelSim-Altera 10.1d 报错问题
- Springmvc导出excel表
- 推送本地项目至git仓库
- IOI 1994 USACO 1.5 数字三角形 Number Triangles
- 数据结构之查找
- Hive学习指南(二)
- Hive安装配置+练习
- 微信小程序开发 一 tabbar图标和颜色
- 深度优先算法解决POJ1830开关问题
- 微服务,微架构[七]之springboot异常处理
- HDU 1879 继续畅通工程
- 0016、node 之富文本的使用