Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
奇怪的问题·······二维数组必须在一维的后面定义????交换开始的二维数组和任何一个一维数组的名字就使AC成WA!!!!!#include<stdio.h> #define Size 200 int point[Size+1]; int sum[Size+1]; int edge[Size+1]; int array[Size+1][Size+1]; /////////// att!!!!! void prejudge(int total) { int i = 0; sum[0]=edge[0]; for(i=1;i<=total;i++) sum[i]=sum[i-1]+point[i]+edge[i]; } void DP(int total) { int start,step,mid; int final; int i; for(i=1;i<=total;i++) array[i][i]=sum[i]-sum[i-1]+edge[i-1]; for(step=1;step<total;step++) for(start=1;start+step<=total;start++) { final=start+step; array[start][final]=array[start+1][final]; for(mid=start+1;mid<=final;mid++) if(array[start][final] > array[start][mid-1]+array[mid+1][final]) array[start][final]=array[start][mid-1]+array[mid+1][final]; array[start][final]+=sum[final]-sum[start-1]+edge[start-1]; } printf("%d\n",array[1][total]); } int main() { int total; int i,j; while(scanf("%d",&total)!=EOF &&total!=0) { for(i=1;i<=total;i++) scanf("%d",point+i); for(i=0;i<=total;i++) scanf("%d",edge+i); for(i=0;i<=total;i++) for(j=0;j<=total;j++) array[i][j]=0; prejudge(total); DP(total); } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator