hdu1171big events in hdu【多重背包模板】【01背包】
来源:互联网 发布:paxos算法和zookeeper 编辑:程序博客网 时间:2024/06/08 11:02
水题 居然遇到杭电oj挂了==这是都在备战区域赛???
/************hdu17112015.10.16************/#include <iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int dp[50005];int value[60],num[60];int n,total,sum;void zero(int cost,int weight){ for(int i=total;i>=cost;i--) dp[i]=max(dp[i],dp[i-cost]+weight);}void complete(int cost,int weight){ for(int i=cost;i<=cost;i++) dp[i]=max(dp[i],dp[i-cost]+weight);}void multi(int cost,int weight,int cnt){ if(total<=cnt*cost) { complete(cost,weight); return; } int k=1; while(k<=cnt) { zero(k*cnt,k*weight); cnt=cnt-k; k=2*k; } zero(cnt*cost,cnt*weight);}int main(){ while(~scanf("%d",&n)) { if(n==-1) break; total=0; sum=0; for(int i=0;i<n;i++) { scanf("%d%d",&value[i],&num[i]); total+=(value[i]*num[i]); } printf("%d \n",total); sum=total; total/=2; memset(dp,0,sizeof(dp)); for(int i=0;i<n;i++) { multi(value[i],value[i],num[i]); } printf("%d %d\n",sum-dp[total],dp[total]); } return 0;}
还有一种01背包的解法 感觉更适合这个题
之前WA了好多次 脑残错误都改过来了 依旧不对 重新写一遍果然好使
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int n,tot,a,b,sum;int dp[255000],val[600];int main(){ while(~scanf("%d",&n),n>0) { sum=0; tot=0; for(int i=0;i<n;i++) { scanf("%d%d",&a,&b); while(b--) { val[tot++]=a; sum+=a; } } memset(dp,0,sizeof(dp)); for(int i=0;i<tot;i++) { for(int j=sum/2;j>=val[i];j--) { dp[j]=max(dp[j],dp[j-val[i]]+val[i]); } } printf("%d %d\n",sum-dp[sum/2],dp[sum/2]); } return 0;}
0 0
- hdu1171big events in hdu【多重背包模板】【01背包】
- hdu1171Big Event in HDU 01背包、多重背包
- hdu1171Big Event in HDU(01背包或多重背包)
- hdu1171Big Event in HDU (多重背包)
- 【01背包】HDU1171Big Event in HDU
- HDU1171Big Event in HDU(01背包)
- hdu1171Big Event in HDU(母函数或多重背包)
- HDU1171Big Event in HDU 背包问题
- poj3211Washing Clothes(字符串处理+01背包) hdu1171Big Event in HDU(01背包)
- hdu 2844 多重背包模板题 01背包、完全背包、多重背包模板
- hdu 1171 Big Event in HDU(01背包&多重背包)
- 01背包、完全背包、多重背包模板
- 模板-01背包-完全背包-多重背包
- 01背包、完全背包、多重背包模板
- 01背包+完全背包+多重背包模板
- 01背包 完全背包 多重背包模板
- HDU 2844 多重背包模板
- HDU1171--Big Event in HDU--01背包,多重背包
- Win7 远程桌面限制IP
- unity3d 插件 Fast Shadows 快速投影
- codevs2627题解:村村通
- 0-1背包问题
- unity3d 插件uSpeak Voice Chat 网络音频聊天
- hdu1171big events in hdu【多重背包模板】【01背包】
- 堆排序
- printf函数的另一用法
- poj Ikki's Story IV - Panda's Trick (2-sat)
- 好用易上手的免費插件 Fungus
- nyoj 次方求模 102 (快速幂)
- Centos系统mysql 忘记root用户的密码
- 近日CSDN异常登录,被别人在其他地方登录了,今天发现一部分博客都被删掉了,然后联系网站客服,给我恢复了。
- 计算机网络随记