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 |
那估计你程序还是有问题,碰巧过了而已In Reply To:奇怪的问题·······二维数组必须在一维的后面定义????交换开始的二维数组和任何一个一维数组的名字就使AC成WA!!!!! Posted by:WuXiaojun at 2004-09-25 23:44:53 > #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