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 |
Re:这题是裸的多重背包,同时纪念poj200题!!In Reply To:这题是裸的多重背包,同时纪念poj200题!! Posted by:chubuxiao2015 at 2016-05-12 15:29:28 > 代码福利送上 > #include<stdio.h> > #include<cstring> > #include<algorithm> > using namespace std; > int i,j,k,t,sum,num; > int a[1000]; > bool f[500000]; > int main() > { > while(1){sum=num=0; > for(i=1;i<=6;i++){ > scanf("%d",&k); > sum+=k*i; > j=1; > while(k>=j)a[++num]=j*i,k-=j,j*=2; > if(k)a[++num]=k*i; > }if(!sum)break; > printf("Collection #%d:\n",++t); > if(sum%2==1){printf("Can't be divided.\n\n");continue;} > memset(f,0,sizeof(f)); > f[0]=1; > for(i=1;i<=num;i++) > for(j=sum;j>=a[i];j--) > if(f[j-a[i]])f[j]=1; > if(f[sum/2])printf("Can be divided.\n\n"); > else printf("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