http://acm.nyist.net/JudgeOnline/problem.php?pid=234
吃土豆
时间限制:
1000 ms | 内存限制:
65535 KB
难度:
4
-
描述
-
Bean-eating is an interesting game, everyone owns an M*N matrix, which is filled with different qualities beans. Meantime, there is only one bean in any 1*1 grid. Now you want to eat the beans and collect the qualities, but everyone must obey by the following rules: if you eat the bean at the coordinate(x, y), you can’t eat the beans anyway at the coordinates listed (if exiting): (x, y-1), (x, y+1), and the both rows whose abscissas are x-1 and x+1.
Now, how much qualities can you eat and then get ?-
输入
-
There are a few cases. In each case, there are two integer M (row number) and N (column number). The next M lines each contain N integers, representing the qualities of the beans. We can make sure that the quality of bean isn't beyond 1000, and 1<=M,N<=500.
输出
- For each case, you just output the MAX qualities you can eat and then get. 样例输入
-
4 6 11 0 7 5 13 9 78 4 81 6 22 4 1 40 9 34 16 10 11 22 0 33 39 6
样例输出
-
242
运行号 用户 题目 结果 时间 内存 语言 提交时间 541212 强子唯一 吃土豆 Accepted
748 8221 java 08-13 16:19:59 import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner cin = new Scanner(System.in); while(cin.hasNext()){ int m =cin.nextInt(); int n =cin.nextInt(); int [][]a = new int[m][n]; for(int i=0;i<m;i++){ for(int j=0;j<n;j++){ a[i][j]=cin.nextInt(); } } for(int i=0;i<m;i++){ a[i][1]=Math.max(a[i][0], a[i][1]); for(int j=1;j<n-1;j++){ if((a[i][j+1]+a[i][j-1])>a[i][j]) a[i][j+1]+=a[i][j-1]; else a[i][j+1]=a[i][j]; } } a[1][n-1]=Math.max(a[1][n-1], a[0][n-1]); for(int i=1;i<m-1;i++){ if((a[i-1][n-1]+a[i+1][n-1])>a[i][n-1]) a[i+1][n-1]+=a[i-1][n-1]; else a[i+1][n-1]=a[i][n-1]; } System.out.println(a[m-1][n-1]); } } }
-
There are a few cases. In each case, there are two integer M (row number) and N (column number). The next M lines each contain N integers, representing the qualities of the beans. We can make sure that the quality of bean isn't beyond 1000, and 1<=M,N<=500.