Time Limit: 1000MS | Memory Limit: 10000K | |
Total Submissions: 48172 | Accepted: 29141 |
Description
7 3 8 8 1 0 2 7 4 4 4 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
5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5
Sample Output
30
Source
IOI 1994
题目大意:在上面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大。
0-1背包问题
题目大意:在上面的数字三角形中寻找一条从顶部到底边的路径,使得路径上所经过的数字之和最大。
0-1背包问题
Scanner scan=new Scanner(System.in);
public static void main(String[] args){
Test test =new Test();
test.start();
}
public void start(){
int num=scan.nextInt();
int array[][] =new int[num][num];
for(int i=0;i<array.length;i++){
for(int j=0;j<i+1;j++){
array[i][j]=scan.nextInt();
}
}
for(int i=array.length-2;i>=0;i--){
for(int j=0;j<i+1;j++){
array[i][j]=Math.max(array[i][j]+array[i+1][j], array[i][j]+array[i+1][j+1]);
}
}
System.out.println(array[0][0]);
}