USCAO-Section 1.5 Number Triangles
2017-06-04 19:13
260 查看
原题:
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 diagonally down 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.
题意:
三角矩阵,从顶部往下走,只能往正下方或右下方走,求那条路径上的数字和最大。经典dp;
反过来从下往上走,求上一步从两个方向哪一个方向走过来获得的值大并与自身相加保存在自己这个位置上。
a[i][j]=a[i][j]+max(a[i+1][j],a[i+1][j+1]);
代码:
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 diagonally down 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.
题意:
三角矩阵,从顶部往下走,只能往正下方或右下方走,求那条路径上的数字和最大。经典dp;
反过来从下往上走,求上一步从两个方向哪一个方向走过来获得的值大并与自身相加保存在自己这个位置上。
a[i][j]=a[i][j]+max(a[i+1][j],a[i+1][j+1]);
代码:
/* ID:newyear111 PROG: numtri LANG: C++ */ #include <iostream> #include <fstream> #include <string> #include<algorithm> using namespace std; const int N=1005; int n; int a ; int main() { ifstream fin("numtri.in"); ofstream fout("numtri.out"); fin>>n; int i,j; for(i=0;i<n;i++){ for(j=0;j<=i;j++){ fin>>a[i][j]; } } for(i=n-2;i>=0;i--){ for(j=0;j<=i;j++){ a[i][j]=a[i][j]+max(a[i+1][j],a[i+1][j+1]); } } fout<<a[0][0]<<endl; fin.close(); fout.close(); return 0; }
相关文章推荐
- USCAO section 1.2 Name That Number
- USCAO section1.3 Prime Cryptarithm(感觉思路挺好)
- USCAO-Section 1.4 Arithmetic Progressions
- USCAO section 1.4 The Clocks
- USCAO section Mother's Milk(搜索)
- USCAO-Section 1.2 Name That Number
- USCAO section 1.4 The Clocks
- USCAO section 2,2 Preface Numbering(算是DP吧)
- USCAO Section 1.2 Palindromic Squares
- USCAO section 2,2 Preface Numbering(算是DP吧)
- USCAO Section 1.2 Dual Palindromes
- USCAO Section 1.1 Milking Cows
- uscao Section 1.1 Friday the Thirteenth
- USCAO Section 1.1 Milking Cows
- USCAO section 1.3 Mixing Milk
- USCAO section 1.4 Arithmetic Progressions(枚举)
- uscao Section 1.1 Friday the Thirteenth
- USCAO section 1.1 Transformations
- USCAO section 1.3 Mixing Milk
- USCAO section 1.4 Packing Rectangles