1 条题解
-
0
C++ :
/* author :hzoi_ztx title :mine ALG :dp comment: [2014 10 20] */ #include <cstdio> #define maxn 1005 int n , m , ans ; int sa[maxn][maxn] = {0} ; int sb[maxn][maxn] = {0} ; int f[maxn][maxn][2] = {0} ; int main() { //#define READ #ifdef READ freopen("mine.in" ,"r",stdin ) ; freopen("mine.out","w",stdout) ; #endif int i , j ; scanf("%d%d", &n , &m ) ; for (i = 1 ; i <= n ; i ++ ) for (j = 1 ; j <= m ; j ++ ) { scanf("%d", &sa[i][j] ) ; sa[i][j] += sa[i][j-1] ; } for (i = 1 ; i <= n ; i ++ ) for (j = 1 ; j <= m ; j ++ ) { scanf("%d", &sb[i][j] ) ; sb[i][j] += sb[i-1][j] ; } for (i = 1 ; i <= n ; i ++ ) { for (j = 1 ; j <= m ; j ++ ) { //东西 0 if (f[i-1][j][1] > f[i-1][j][0]) f[i][j][0] = f[i-1][j][1]+sa[i][j] ; else f[i][j][0] = f[i-1][j][0]+sa[i][j] ; //南北 1 if (f[i][j-1][1] > f[i][j-1][0]) f[i][j][1] = f[i][j-1][1]+sb[i][j] ; else f[i][j][1] = f[i][j-1][0]+sb[i][j] ; } } /* printf("nanbei :\n") ; for (i = 1 ; i <= n ; i ++ ) { printf("\n") ; for (j = 1 ; j <= m ; j ++ ) printf("%d ",f[i][j][1]) ; } printf("\ndongxi : \n") ; for (i = 1 ; i <= n ; i ++ ) { printf("\n") ; for (j = 1 ; j <= m ; j ++ ) printf("%d ",f[i][j][0]) ; } */ if (f[n][m][1]>f[n][m][0]) f[n][m][0] = f[n][m][1] ; printf("%d\n", f[n][m][0]); #ifdef READ fclose(stdin ) ; fclose(stdout) ; #endif return 0 ; }
- 1
信息
- ID
- 2532
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者