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 |
母函数法#include<iostream> #include<cstring> using namespace std; int main() { int N; int a[800],b[800]; int SUM; int x[7]; int cas=0; while(cin>>x[1]>>x[2]>>x[3]>>x[4]>>x[5]>>x[6]) { cas++; SUM=0; for(int i=1;i<=6;i++) { if(x[i]>61) { if(x[i]%2)x[i]=61; else x[i]=60; } SUM+=x[i]*i; } if(SUM==0)break; if(SUM%2) { cout<<"Collection #"<<cas<<":\n"<<"Can't be divided.\n\n"; continue; } memset(a,0,sizeof(a)); memset(b,0,sizeof(b)); a[0]=1; N=SUM/2; for(int i=1;i<=6;i++) { if(x[i]==0)continue; for(int j=0;j<=N;j++) for(int k=0;k<=x[i]&&k*i+j<=N;k++) b[k*i+j]+=a[j]; for(int j=0;j<=N;j++) { a[j]=b[j]; b[j]=0; } } if(a[N]>0)cout<<"Collection #"<<cas<<":\n"<<"Can be divided.\n\n"; else cout<<"Collection #"<<cas<<":\n"<<"Can'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