Monkey Banana Problem LightOJ - 1004
错误记录:
1.数组开小
2.每组数据数组没有清空
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 int T,TT,n; 6 int a[300][300],ans[300][300]; 7 int main() 8 { 9 int i,j; 10 scanf("%d",&T); 11 for(TT=1;TT<=T;TT++) 12 { 13 memset(a,0,sizeof(a)); 14 memset(ans,0,sizeof(ans)); 15 scanf("%d",&n); 16 for(i=1;i<=n;i++) 17 for(j=1;j<=i;j++) 18 scanf("%d",&a[i][j]); 19 for(i=1;i<n;i++) 20 for(j=1;j<=n-i;j++) 21 scanf("%d",&a[i+n][j]); 22 ans[1][1]=a[1][1]; 23 for(i=2;i<=n;i++) 24 { 25 ans[i][1]=ans[i-1][1]+a[i][1]; 26 for(j=2;j<=i;j++) 27 ans[i][j]=max(ans[i-1][j],ans[i-1][j-1])+a[i][j]; 28 } 29 for(i=1;i<n;i++) 30 for(j=1;j<=n-i;j++) 31 ans[i+n][j]=max(ans[i+n-1][j],ans[i+n-1][j+1])+a[i+n][j]; 32 printf("Case %d: %d ",TT,ans[n*2-1][1]); 33 } 34 }