1 #include <stdio.h> 2 3 inline int max(int&a, int&b) { 4 return a>b?a:b; 5 } 6 7 int T, N, mat[1001][1001]; 8 int main() { 9 scanf("%d", &T); 10 while(T--) { 11 scanf("%d", &N); 12 for(int i=1; i<=N; i++) 13 for(int j=1; j<=N; j++) { 14 scanf("%d", mat[i]+j); 15 mat[i][j]+=max(mat[i-1][j], mat[i][j-1]); 16 } 17 printf("%d\n", mat[N][N]); 18 } 19 return 0; 20 }
1 #include <stdio.h> 2 3 inline int max(int&a, int&b) { 4 return a>b?a:b; 5 } 6 7 int T, N, mat[1001], x; 8 int main() { 9 scanf("%d", &T); 10 while(T--) { 11 scanf("%d", &N); 12 for(int i=1; i<=N; i++) 13 mat[i]=0; 14 for(int i=1; i<=N; i++) 15 for(int j=1; j<=N; j++) { 16 scanf("%d", &x); 17 mat[j]=max(mat[j-1], mat[j])+x; 18 } 19 printf("%d\n", mat[N]); 20 } 21 return 0; 22 }
——by BlackStorm, from here: http://www.cnblogs.com/BlackStorm/p/5043638.html .
SCNU 2015ACM新生赛决赛【F. Oyk闯机关】解题报告
原文:http://www.cnblogs.com/BlackStorm/p/5043638.html