hdu 1171 Big Event in HDU 多重背包问题
来源:互联网 发布:仙6steam mac 编辑:程序博客网 时间:2024/06/03 15:31
题目:点击打开链接
大意:杭电的计算机和软件要分家,那哥俩想平分财产啊,所以尽量平分,如果不能平分那就让computer多拿点吧,问最平均的方式哥俩各拿多少
分析:把多重背包拆分成0-1背包,用val数组存储每个物件的价值,统计总财产和为sum,用物件来填充,直到财产和够sum/2为止,这样就达到了尽可能平分的情况了
这不就是和0-1背包一样了吗?
#include<iostream>#include<string.h>#include<algorithm>using namespace std;int val[5005],dp[250005];int n,sum;int main(){ while(cin>>n){ if(n<0)break; memset(dp,0,sizeof(dp)); memset(val,0,sizeof(val)); int countn=0; sum=0; int a,b; for(int i=0;i<n;i++){ cin>>a>>b; while(b--){ val[countn++]=a; sum+=a; } } for(int i=0;i<countn;i++) for(int j=0;j<=sum/2;j++) if(val[i]<=j)dp[j]=max(dp[j],dp[j-val[i]]+val[i]); cout<<sum-dp[sum/2]<<' '<<dp[sum/2]<<endl; }}
0 0
- hdu 1171 Big Event in HDU 多重背包问题
- Big Event in HDU(多重背包问题)
- hdu 1171 Big Event in HDU(01背包&多重背包)
- HDU Big Event in HDU - 多重背包
- hdu 1171多重背包Big Event in HDU
- hdu 1171 Big Event in HDU 多重背包
- hdu 1171 Big Event in HDU(多重背包可行性)
- HDU 1171 Big Event in HDU(多重背包)
- Hdu 1171 Big Event in HDU (多重背包)
- HDU 1171 Big Event in HDU(多重背包)
- hdu 1171 Big Event in HDU(多重背包)
- hdu 1171 Big Event in HDU 多重背包基础题
- hdu 1171 Big Event in HDU (多重背包)
- hdu 1171 Big Event in HDU 多重背包
- HDU 1171 Big Event in HDU (多重背包)
- hdu 1171 Big Event in HDU 多重背包
- hdu 1171 Big Event in HDU --- 多重背包
- 多重背包hdu 1171Big Event in HDU
- Solr 配置文件之schema.xml
- 图论500题
- java:关于字符编码的试题
- 一致性哈希算法及其在分布式系统中的应用
- Android 开发之 SimpleTagImageView自定义ImageView
- hdu 1171 Big Event in HDU 多重背包问题
- hdu5119 Happy Matt Friends(dp)
- IOS UIGraphicsBeginImageContext 使用简介
- 【samba】RedHat samba的简单配置以及遇到的问题
- Nginx模块开发(5)————开发简单的HTTP过滤模块
- 栈的应用--简单计算器---加减乘除
- scrollView 循环滚动
- python opencv 函数库说明
- iOS arc与非arc混编 以及设置UINavigationBar的高度