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<iostream> #include<memory.h> using namespace std; int stone[7],max1,mid; int opt[60001]; int DFS() { int i,j,k; for(i=1;i<=6;i++) { if(stone[i]) { for(j=0;j<=max1;j++) { if(opt[j]) { for(k=1;k<=stone[i];k++) { if(opt[mid]) return 1; if(j+i*k>mid) break; if(opt[j+i*k]==0) opt[j+i*k]=1; } } } max1=max1+i*stone[i]; if(max1>mid) max1=mid; } } return 0; } int main() { int i,CASE=0; while(cin>>stone[1]) { mid=stone[1]; CASE++; for(i=2;i<=6;i++) { cin>>stone[i]; mid+=stone[i]*i; } if(mid==0) break; if(mid%2) { cout<<"Collection #"<<CASE<<":\nCan't be divided.\n\n"; continue; } else { max1=0; mid=mid/2; memset(opt,0,sizeof(opt)); opt[0]=1; if(DFS()) cout<<"Collection #"<<CASE<<":\nCan be divided.\n\n"; else cout<<"Collection #"<<CASE<<":\nCan't be divided.\n\n"; } } return 0; } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator