USACO——Number Triangles 数字金字塔
2015-06-20 13:58
162 查看
Number Triangles
Consider the number triangle shown below. Write a program that calculates the highest sum of numbers that can be passed on a route that starts at the top and ends somewhere on the base. Each step can go either diagonallydown to the left or diagonally down to the right.
7 3 8 8 1 0 2 7 4 4 4 5 2 6 5
In the sample above, the route from 7 to 3 to 8 to 7 to 5 produces the highest sum: 30.
PROGRAM NAME: numtri
INPUT FORMAT
The first line contains R (1 <= R <= 1000), the number of rows. Each subsequent line contains the integers for that particular row of the triangle. All the supplied integers are non-negative and no larger than100.
SAMPLE INPUT (file numtri.in)
5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5
OUTPUT FORMAT
A single line containing the largest sum using the traversal specified.SAMPLE OUTPUT (file numtri.out)
30
思路:dp,从下往上bfs即可
/* ID: youqihe1 PROG: numtri LANG: C++ */ #include <iostream> #include <fstream> #include <string> #include<algorithm> using namespace std; int A[1001][1001]; int main() { FILE *fin = fopen ("numtri.in", "r"); FILE *fout = fopen ("numtri.out", "w"); int N; fscanf(fin,"%d",&N); int i,j,k; for(i=0;i<N;i++) for(j=0;j<=i;j++) fscanf(fin,"%d",&A[i][j]); for(i=N-2;i>=0;i--) { for(j=0;j<=i;j++) A[i][j]+=max(A[i+1][j],A[i+1][j+1]); } fprintf(fout,"%d\n",A[0][0]); return 0; }
相关文章推荐
- Js apply方法详解
- Android 服务端Socket
- CDN实现方案如何选择: squid Varnish Nginx
- Eclipse+Mysql+Tomcat亲身经历
- 图像识别技术
- Android 客户端Socket
- 黑马程序员——Java基础——String类的学习
- 丹佛机场自动行包系统案例
- 网页错误码大全(来自百度文库)总结_Phoenix-晶
- MySQL常用命令
- VS2008 用CFile对象读取Unicode文本。
- leetcode--Find Peak Element
- 挚爱身影渐隐。素绞无意世情狠
- LD_PRELOAD应用--基于libvirt审计(上)
- [总结]FFMPEG视音频编解码零基础学习方法--转
- 转:IOS:查找SDK路径和Framework头文件
- 跳马问题
- 日语学习之沪江N3基础 20150620 -4
- ffmpeg中swscale 的用法
- 斑斑驳驳。伤情时节,镌为别离的箫瑟