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 |
555,为什么总是WA啊,哪个好心人看看啊#include <iostream> //#include <fstream> using namespace std; #define MAX_N 300 #define MAX_M 30 #define MAX_VALUE 1000 #define NEG_INF -100 /*ofstream fout("1015"); #define cout fout */ int n,m,value; //1<=n<=200, 1<=m<=20 int sum[MAX_N],sub[MAX_N],p[MAX_N],d[MAX_N]; int ans[300][21][1000],result[2][30][1000][30]; int sample; void init() { int i,j,y; for(i=1;i<=n;i++){ cin>>p[i]>>d[i]; sum[i]=d[i]+p[i]; sub[i]=p[i]-d[i]+20; } for(i=0;i<=n;i++) for(j=0;j<=m;j++) for(y=0;y<=40*m;y++) ans[i][j][y]=-1; for(i=0;i<=n;i++)ans[i][0][0]=0; } void copy(int i,int j,int y,int flag) { int l; if(flag==1){ for(l=1;l<=j;l++) result[i%2][j][y][l]=result[(i-1)%2][j][y][l]; } if(flag==2){ for(l=1;l<=j-1;l++) result[i%2][j][y][l]=result[(i-1)%2][j-1][y-sub[i]][l]; result[i%2][j][y][j]=i; } } void solve() { int i,j,y; for(i=1;i<=n;i++) for(j=1;j<=m;j++) for(y=1;y<=40*m;y++) { int flag=0; ans[i][j][y]=-1; if(ans[i-1][j][y]!=-1) { flag=1; ans[i][j][y]=ans[i-1][j][y]; // cout<<flag<<" "<<i<<" "<<j<<" "<<y<<" "<<ans[i][j][y]<<endl; } if((y-sub[i]>=0)&&ans[i-1][j-1][y-sub[i]]!=-1&&ans[i-1][j-1][y-sub[i]]+sum[i]>ans[i][j][y]) { flag=2; ans[i][j][y]=ans[i-1][j-1][y-sub[i]]+sum[i]; // cout<<flag<<" "<<i<<" "<<j<<" "<<y<<" "<<ans[i][j][y]<<endl; } if(flag) copy(i,j,y,flag); } } void output() { int i,l,t; for (i=0;i<=20*m;i++) { if (ans[n][m][20*m+i]>=0 || ans[n][m][20*m-i]>=0) if (ans[n][m][20*m+i]>ans[n][m][20*m-i]) {l=20*m+i;break;} else {l=20*m-i;break;} } int pi=0,di=0; for(t=1;t<=m;t++) { pi+=p[result[n%2][m][l][t]]; di+=d[result[n%2][m][l][t]]; } cout<<"Jury #"<<sample++<<endl<<"Best jury has value "<<pi<<" for prosecution and value "<<di<<" for defence:"<<endl; for(t=1;t<=m;t++) cout<<" "<<result[n%2][m][l][t]; cout<<endl; cout<<endl; } int main() { sample=1; while(cin>>n>>m){ if(n==0&&m==0) break; init(); solve(); output(); } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator