USACO Section 1.5 Number Triangles
来源:互联网 发布:星游记网络大电影 编辑:程序博客网 时间:2024/05/17 23:49
题目描述
考虑下面的数字三角形。 编写一个程序,该程序计算可以在顶部开始并在基地某处结束的路由上传递的最高数字总和。 每一步都可以沿着对角线向左或向右对角走。7
3 8
8 1 0
2 7 4 4
4 5 2 6 5
在上面的示例中,从7到3到8到7到5的路由产生最高的和:30。
程序名称:numtri
输入格式
第一行包含R(1 <= R <= 1000)行数。 每个后续行包含该特定行的三角形的整数。 所有提供的整数都是非负数,不大于100。。
输入 (file numtri.in)
573 88 1 02 7 4 44 5 2 6 5
输出格式
包含使用遍历指定的最大和的单行。
输出(file numtri.out)
30解题思路
本题主要的解题思路在于下一行只与上一行求得的最大值有关,主要的公式为d[i][j]=max(d[i-1][j],d[i-1][j-1])+x[i][j]
解题代码
/*ID: 15189822PROG: numtriLANG: C++*/#include<iostream>#include<cstring>#include<fstream>using namespace std;ifstream fin("numtri.in");ofstream fout("numtri.out");const int N = 1000;int d[N+1][N+1];int x[N+1][N+1];int main(){ int i,j,n; fin>>n; for (i=1;i<=n;i++){ for (j=1;j<=i;j++){ fin>>x[i][j]; } } d[1][1]=x[1][1]; for (i=1;i<=n;i++){ for (j=1;j<=n;j++){ d[i][j]=max(d[i-1][j],d[i-1][j-1])+x[i][j]; } } int m=d[n][1]; for (i=2;i<=n;i++){ m=max(m,d[n][i]); } fout<<m<<endl; return 0;}
阅读全文
0 0
- USACO Section 1.5 Number Triangles
- USACO Section 1.5 Number Triangles
- USACO Section 1.5 Number Triangles
- USACO section 1.5.1 Number Triangles
- USACO-Section 1.5 Number Triangles(DP)
- USACO-Section 1.5 Number Triangles[贪心]
- Section 1.5 Number Triangles
- USACO 1.5 Number Triangles
- USACO 1.5-Number Triangles
- USACO 1.5 Number Triangles
- USCAO-Section 1.5 Number Triangles
- [USACO 1.5.1] Number Triangles
- USACO 1.5 Number Triangles (numtri)
- USACO 1.5.1 Number Triangles
- USACO-1.5.2-Number triangles
- USACO Section 1.5 Number Triangles - 最最简单最最经典的DP..
- USACO:1.5.1 Number Triangles 数字金字塔
- USACO 1.5 Number Triangles 数塔问题
- 机器学习:一步步教你理解反向传播方法
- Python中的sorted函数以及operator.itemgetter函数
- MAC 下 CocoaPods 安装与使用来管理项目第三方框架
- 人生
- java简要实现优先级的分组排序
- USACO Section 1.5 Number Triangles
- 使用位运算总结(转载)
- kafka2:性能优化
- jq鼠标经过隐藏当前显示另一个
- python逻辑控制
- Delphi 動態創建控件,賦值,使用
- python3 爬虫时遇到问题:cannot use a string pattern on a bytes-like object
- css复习整理(三):盒子模型
- 经验分享 | 一个程序员的运气有多重要