A +---2---+---3---+----1---+----2---+ | | | | | 2 1 2 2 3 | | | | | +---2---+---3---+----4---+---5----+ | | | | | 3 4 1 2 3 | | | | | +---2---+---2---+---1----+---4----+ | | | | | 2 2 1 3 4 | | | | | +---1---+---3---+---2----+---3----+ B
标签:
A +---2---+---3---+----1---+----2---+ | | | | | 2 1 2 2 3 | | | | | +---2---+---3---+----4---+---5----+ | | | | | 3 4 1 2 3 | | | | | +---2---+---2---+---1----+---4----+ | | | | | 2 2 1 3 4 | | | | | +---1---+---3---+---2----+---3----+ B
4 5 2 3 1 2 2 3 4 5 2 2 1 4 1 3 2 3 2 3 2 1 4 2 2 1 1 2 2 3 3 3 4
13
1 #include<stdio.h> 2 #define INF 1<<30 3 int min(int a,int b) 4 { 5 return a<=b?a:b; 6 } 7 8 int main() 9 { 10 freopen("a.txt","r",stdin); 11 int m,n; 12 int cross[200][200],vertical[200][200]; 13 int i,j,k; 14 int dp[250][250]; 15 while(scanf("%d%d",&m,&n)==2) 16 { 17 for(i=0;i<=m;i++) 18 for(j=0;j<=n;j++) 19 { 20 cross[i][j]=INF; 21 vertical[i][j]=INF; 22 } 23 for(i=1;i<=m;i++) 24 for(j=1;j<=n-1;j++) 25 { 26 scanf("%d",&cross[i][j]); 27 } 28 for(i=1;i<=m-1;i++) 29 for(j=1;j<=n;j++) 30 { 31 scanf("%d",&vertical[i][j]); 32 } 33 for(i=0;i<=m;i++) 34 for(j=0;j<=n;j++) 35 { 36 dp[i][j]=INF; 37 } 38 39 dp[1][1]=0; 40 for(i=1;i<=m;i++) 41 for(j=1;j<=n;j++) 42 { 43 if(i==1&&j==1) 44 continue; 45 dp[i][j]=0; 46 dp[i][j]+=min(dp[i-1][j],dp[i][j-1])+min(cross[i][j-1],vertical[j][i-1]); 47 } 48 for(i=1;i<=m;i++) 49 { 50 printf("\n"); 51 for(j=1;j<=n;j++) 52 { 53 printf("%-4d",dp[i][j]); 54 } 55 } 56 printf("%d\n",dp[m][n]); 57 } 58 return 0; 59 } 60
标签:
原文地址:http://www.cnblogs.com/get-an-AC-everyday/p/4185502.html