母函数 HDU-1171 Big Event in HDU
来源:互联网 发布:嘀哩嘀哩 知乎 编辑:程序博客网 时间:2024/06/06 19:38
原题:HDU-1171
设p[i]为第i个物品的value,num[i]为第i个物品的数量,那么可得母函数的一般公式
限定值可以取总值的一半,既sum/2。
用数组ans[i]保存x的i次方的系数,所以结果就是看最接近限定值的不为零的ans[i]就好啦
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int p[100],ans[265005],num[100],temp[265005];int main(){ int n,sum; while(cin>>n&&n>0){ sum=0; for(int i=1;i<=n;i++){ cin>>p[i]>>num[i]; sum+=p[i]*num[i]; } memset(ans,0,sizeof(ans)); for(int i=0;i<=num[1];i++) ans[i*p[i]]=1; for(int i=2;i<=n;i++){ memset(temp,0,sizeof(temp)); for(int j=0;j<=(sum+1)/2;j++) for(int k=0;k<=num[i];k++) temp[j+k*p[i]]=temp[j+k*p[i]]+ans[j]; for(int j=0;j<=(sum+1)/2;j++) ans[j]=temp[j]; } int i; for(i=(sum+1)/2;i>=0;i--) if(ans[i]!=0)break; int t=max(sum-i,i); cout<<t<<' '<<sum-t<<endl; } return 0;}
阅读全文
0 0
- 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(母函数||DP)
- 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
- HDU1171 Big Event in HDU 【母函数】
- 《深入理解java虚拟机》学习笔记7——Java虚拟机类生命周期
- 最优对称路径 CSU
- 在Scala中,def foo = {}和def foo() = {}有什么区别?
- Lua中的环境概念
- Fair Division
- 母函数 HDU-1171 Big Event in HDU
- iOS与安卓的区别 浅谈ios为什么比安卓流畅
- CSU 1811 Tree Intersection(莫队算法)
- C++中直接拒绝编译器自动生成copy constructor和copy operator=操作(6)---《Effective C++》
- POJ2677--Tour DP
- 期望DP入门(POJ 1190 ,POJ 2609)
- qduoj LC的课后辅导(单调栈)
- [RK3288][Android6.0] 调试笔记 --- 如何修改/dev/ttySx后面的数字号
- 线程同步的方式