hdu 1171 Big Event in HDU(多重背包可行性)
来源:互联网 发布:淘宝取现手续费多少 编辑:程序博客网 时间:2024/05/22 10:31
总价值的一半为背包容量,可以多重背包,可以转成完全背包
#include <bits/stdc++.h>using namespace std;const int MAXN = 10000;int num[MAXN];int dp[MAXN*100];int v[MAXN];int n,sum,W;int main(){ ios::sync_with_stdio(false); while(cin >> n && n > 0) { sum = 0; memset(dp,0,sizeof(dp)); for(int i = 0; i < n; ++i) { cin >> v[i] >> num[i]; sum += v[i]*num[i]; } W = sum/2; int res = 0; for(int i = 0; i < n; ++i) { if(v[i]*num[i] >= W) { for(int j = v[i]; j <= W; ++j) { dp[j] = max(dp[j],dp[j-v[i]]+v[i]); res = max(res,dp[j]); } } else { int temp = num[i]; for(int k = 1; k <= num[i]; k *= 2) { for(int j = W; j >= k*v[i]; --j) { dp[j] = max(dp[j],dp[j-k*v[i]]+k*v[i]); res = max(dp[j],res); } temp -= k; } if(temp) { for(int j = W; j >= temp*v[i]; --j) { dp[j] = max(dp[j],dp[j-temp*v[i]]+temp*v[i]); res = max(dp[j],res); } } } } cout << max(res,sum-res) << " " << min(res,sum-res) << endl; } return 0;}
阅读全文
0 0
- hdu 1171 Big Event in HDU(多重背包可行性)
- hdu 1171 Big Event in HDU(多重背包可行性)
- hdu 1171 Big Event in HDU 费用可行性背包 dp
- 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 1171Big Event in HDU
- 第16天
- .net Core中间件实战
- Zookeeper高可用集群的安装配置
- LCA,RMQ,并查集, tarjan算法等相关
- CSS3 响应适动态加载 外部style样式文件
- hdu 1171 Big Event in HDU(多重背包可行性)
- JAVA语言实现大量信息的分页显示功能及对象反射(通过参数找到对应的函数)
- 简单易懂的ftp配置教程
- java中的匿名类
- 使用python Django框架来实现web端分页呈现数据
- 插件化框架 RePlugin 应用之三:外置插件
- Shell 交互输入
- Set接口(Set接口简介、HashSet集合、TreeSet集合 )
- freetype的安装