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 |
麻烦大家帮我找一找错误,一直wa,我检查了很久都没有结果,先谢谢了!!!#include<stdio.h> double ans; void f(int a[10][4],int b[10],double c[10],int n); int main(void) { int num,zu,a[10][4]={0},n,i,b[10]={0}; double c[10]={0}; scanf("%d",&num); for(zu=1;zu<=num;zu++){ b[0]=0; ans=-1; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d%d%d",&a[i][1],&a[i][2],&a[i][3]); f(a,b,c,n); printf("%d\n",(int)ans); } system("pause"); return 0; } void f(int a[10][4],int b[10],double c[10],int n) { int i,k,j,flag=0; double h1,h2,maxh,hh; int d[10]={0}; double e[10]={0}; for(j=0;j<n;j++){ if(a[j][0]==0){ flag=1; a[j][0]=1; if(b[0]==0){ d[0]=1; d[1]=j; e[1]=0; f(a,d,e,n); } else{ maxh=c[b[0]]; for(k=1;k<=b[0];k++){ i=b[k]; hh=c[k]; if((a[i][3]-a[i][2])*a[j][1]>=(a[j][3]-a[j][2])*a[i][1]){ if(a[j][2]>=a[i][3]&&hh+a[i][1]>maxh) maxh=hh+a[i][1]; if(a[j][2]>a[i][2]&&a[j][2]<a[i][3]){ h2=hh+(a[j][2]-a[i][2])*a[i][1]/(a[i][3]-a[i][2]); if(h2>maxh) maxh=h2; } } else{ if(a[j][2]>=a[i][3]){ if(hh+a[i][1]>maxh) maxh=hh+a[i][1]; } else if(a[j][3]<=a[i][3]){ h1=(a[j][3]-a[i][2])*a[i][1]/(a[i][3]-a[i][2]); if(h1>a[j][1]){ h2=h1-a[j][1]+hh; if(h2>maxh) maxh=h2; } } else{ h1=(a[i][3]-a[j][2])*a[j][1]/(a[j][3]-a[j][2]); if(h1<a[i][1]){ h2=hh+a[i][1]-h1; if(h2>maxh) maxh=h2; } } } } for(k=1;k<=b[0]&&c[k]+a[b[k]][1]>maxh+a[j][1];k++); d[0]=k; for(k=1;k<d[0];k++){ d[k]=b[k]; e[k]=c[k]; } d[k]=j; e[k]=maxh; /*i=b[0]; b[0]=k; k=b[b[0]]; b[b[0]]=j; hh=c[b[0]]; c[b[0]]=maxh;*/ f(a,d,e,n); /*c[b[0]]=hh; b[b[0]]=k; b[0]=i;*/ } a[j][0]=0; } } if(flag==0){ if(c[1]+a[b[1]][1]<ans||ans<0) ans=c[1]+a[b[1]][1]; } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator