ACM日记_17.7.22——多重背包模板
来源:互联网 发布:淘宝数据包导出 编辑:程序博客网 时间:2024/06/05 09:41
#include <iostream> #include<cstdio> #include<cstring> using namespace std; int dp[100009],c[100009],w[100009],m[100009]; int n,M,t; void zeropack(int cost,int weight) { for(int i=M;i>=cost;i--) dp[i]=max(dp[i-cost]+weight,dp[i]); } void completepack(int cost,int weight) { for(int i=cost;i<=M;i++) dp[i]=max(dp[i-cost]+weight,dp[i]); } void multipack(int cost,int weight,int num) { if(num*cost>=M) { completepack(cost,weight); return; } int k=1; while(k<num) { zeropack(k*cost,k*weight); num-=k; k*=2; } zeropack(cost*num,weight*num); } int main() { //freopen("cin.txt","r",stdin); while(~scanf("%d%d",&M,&n)) { for(int i=1;i<=n;i++){scanf("%d%d",&m[i],&c[i]);w[i]=c[i];} memset(dp,0,sizeof(dp)); for(int i=1;i<=n;i++) { multipack(c[i],w[i],m[i]); } printf("%d\n",dp[M]); } return 0; }
阅读全文
0 0
- ACM日记_17.7.22——多重背包模板
- ACM日记_17.3.14——*最大公约数*与*最小公倍数*
- ACM日记_17.3.14——快速幂取模
- ACM日记_17.3.14——高精度算法
- ACM日记_17.3.14——神奇的0x3f3f3f3f
- ACM日记_17.5.01——sort的用法
- ACM日记_17.3.14——输入均为独立字母与数字时的处理
- ACM日记_17.3.27——偷懒的字符串处理一道
- ACM日记_17.5.01——控制格式的输出就只会printf了?cout也可以!
- ACM日记_17.5.01——数位DP自整理(例题:HDU 2089 不要62)
- ACM日记_17.5.01——矩阵快速幂整理(例题i:Fibonacci POJ
- ACM学习感悟——HDU2844 多重背包
- ycb的ACM进阶之路(多重背包模板)
- 背包模板(0—1,无限,多重)
- 多重背包模板
- 多重背包模板
- 模板多重背包
- 多重背包模板
- jsonp跨域详解
- Android L 5.1.1 Rear Camera
- Mysql Access denied for user root@localhost错误解决方法总结
- js中==与===的区别
- 【JavaScript操作符优先级及闰年的计算】
- ACM日记_17.7.22——多重背包模板
- linux虚拟机之CentOS6.4安装详解
- FluentNHibernate+NHibernate4.1+Oracle12c+VS2013 数据连接配置说明
- IDEA 破解
- github教程
- SQLserver、Mysql、Oracle三种数据库的优缺点总结
- 深夜瞎总结一下
- 关于对Python作用域的一点理解
- fedora26安装记录