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:思路是抄的,这题有什么bt数据吗? Posted by:devilphoenix at 2006-06-06 14:07:06 for (j=m;j>=0;--j)改成了for (j=m-1;j>=0;--j)…… 为啥过了。。。 > 用了好多随机数据,结果和ac的程序比过了,都没问题。。 > > #include <iostream> > using namespace std; > #define MID 401 > > struct xy_pair{ > int x; > int y; > }; > > > > xy_pair seq[201]; > > int opt[24][810][24]={0}; > > int main() > { > int i,j,k,l,tmp,p; > int max=MID,min=MID; > int nmax=MID,nmin=MID; > int tmp_x,tmp_y; > int m,n; > for(l=1;;++l){ > opt[0][MID][23]=l; > opt[0][MID][22]=0; > cin>>n>>m; > if (0==n) break; > max=MID; > min=MID; > nmax=MID; > nmin=MID; > for(i=0;i<n;++i){ > cin>>tmp_x>>tmp_y; > seq[i].x=tmp_x-tmp_y; > seq[i].y=tmp_x+tmp_y; > for (j=m;j>=0;--j) { > for (k=min;k<=max;++k) { > if (l==opt[j][k][23]) { > tmp=k+seq[i].x; > if ((opt[j][k][22]+seq[i].y)>opt[j+1][tmp][22] > || opt[j+1][tmp][23]!=l){ > opt[j+1][tmp][23]=l; > opt[j+1][tmp][22]=opt[j][k][22]+seq[i].y; > if (tmp<nmin) nmin=tmp; > if (tmp>nmax) nmax=tmp; > for (p=0;p<j;p++) { > opt[j+1][tmp][p]=opt[j][k][p]; > } > opt[j+1][tmp][j]=i+1; > } > } > } > } > max=nmax; > min=nmin; > } > for (i=0;i<MID;++i) { > if (opt[m][MID+i][23]==l && opt[m][MID-i][23]==l) { > if (opt[m][MID+i][22]>=opt[m][MID-i][22]) { > cout<<"Jury #"<<l<<endl<<"Best jury has value "<<(opt[m][MID+i][22]+i)/2 > <<" for prosecution and value "<<(opt[m][MID+i][22]-i)/2<<" for defence:\n"; > for (j=0;j<m;++j) { > cout << ' ' <<opt[m][MID+i][j]; > } > cout<<endl<<endl; > } > else if(opt[m][MID+i][22]<opt[m][MID-i][22]){ > cout<<"Jury #"<<l<<endl<<"Best jury has value "<<(opt[m][MID-i][22]-i)/2 > <<" for prosecution and value "<<(opt[m][MID-i][22]+i)/2<<" for defence:\n"; > for (j=0;j<m;++j) { > cout << ' ' <<opt[m][MID-i][j]; > } > cout<<endl<<endl; > } > break; > } > else if (opt[m][MID+i][23]==l) { > cout<<"Jury #"<<l<<endl<<"Best jury has value "<<(opt[m][MID+i][22]+i)/2 > <<" for prosecution and value "<<(opt[m][MID+i][22]-i)/2<<" for defence:\n"; > for (j=0;j<m;++j) { > cout << ' ' <<opt[m][MID+i][j]; > } > cout<<endl<<endl; > break; > } > else if (opt[m][MID-i][23]==l) { > cout<<"Jury #"<<l<<endl<<"Best jury has value "<<(opt[m][MID-i][22]-i)/2 > <<" for prosecution and value "<<(opt[m][MID-i][22]+i)/2<<" for defence:\n"; > for (j=0;j<m;++j) { > cout << ' ' <<opt[m][MID-i][j]; > } > cout<<endl<<endl; > break; > > } > /* if (opt[m][MID+i][23]==l) { > if ((opt[m][MID+i][22]>=opt[m][MID-i][22] && opt[m][MID-i][23]==l) > || opt[m][MID-i][23]!=l) { > cout<<"Jury #"<<l<<endl<<"Best jury has value "<<(opt[m][MID+i][22]+i)/2 > <<" for prosecution and value "<<(opt[m][MID+i][22]-i)/2<<" for defence:\n"; > for (j=0;j<m;++j) { > cout << ' ' <<opt[m][MID+i][j]; > } > cout<<endl<<endl; > } > else if(opt[m][MID+i][22]<opt[m][MID-i][22] && opt[m][MID-i][23]==l){ > cout<<"Jury #"<<l<<endl<<"Best jury has value "<<(opt[m][MID-i][22]-i)/2 > <<" for prosecution and value "<<(opt[m][MID-i][22]+i)/2<<" for defence:\n"; > for (j=0;j<m;++j) { > cout << ' ' <<opt[m][MID-i][j]; > } > cout<<endl<<endl; > } > break; > } > else if (opt[m][MID-i][23]==l) { > cout<<"Jury #"<<l<<endl<<"Best jury has value "<<(opt[m][MID-i][22]-i)/2 > <<" for prosecution and value "<<(opt[m][MID-i][22]+i)/2<<" for defence:\n"; > for (j=0;j<m;++j) { > cout << ' ' <<opt[m][MID-i][j]; > } > cout<<endl<<endl; > break; > }*/ > } > } > return 0; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator