HDU 1171 Big Event in HDU(多重背包)
2012-08-24 00:50
363 查看
#include <iostream> #include <string.h> using namespace std; int n,v[60],m[60],sum,dp[250010]; int main() { while(cin >> n) { if(n<0)break; sum = 0; for(int i=0;i<n;i++) { cin >> v[i] >> m[i]; sum += v[i]*m[i]; } memset(dp,0,sizeof(dp)); for(int i=0;i<n;i++) { for(int j=0;j<m[i];j++) { for(int k=sum/2;k>=v[i];k--) { if(dp[k]<dp[k-v[i]]+v[i])dp[k]=dp[k-v[i]]+v[i]; } } } cout << sum-dp[sum/2] << " " << dp[sum/2] << endl; } return 0; }
思路:多重背包,因为数据规模较小,采用01背包水过
相关文章推荐
- HDU 1171 Big Event in HDU 多重背包01求解
- hdu 1171 Big Event in HDU 费用可行性背包 dp
- hdoj1171 Big Event in HDU(01背包 || 多重背包)
- hdoj 1171 Big Event in HDU(背包dp+母函数)
- HDU - 1171 Big Event in HDU(母函数、0-1背包)
- hdu 1171 Big Event in HDU(多重背包)
- 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(多重背包)
- HDU 1171 Big Event in HDU(多重背包)
- Big Event in HDU(杭电1171)(多重背包)和(母函数)两种解法
- HDU 1171 Big Event in HDU (多重bool背包) /(01背包)
- hdu1171 Big Event in HDU(背包)
- HDU 1171 Big Event in HDU(多重背包)
- 1171 Big Event in HDU【背包】
- HDU 1171 Big Event in HDU (多重背包)
- HDU 1171 Big Event In HDU 背包拆分
- HDU - 1171 Big Event in HDU —— 多重背包转01背包
- hdu 1171 Big Event in HDU --- 多重背包