http://poj.org/problem?id=1276

才开始自己写了一下转换成01背包的做法,直接tle。。计算一下就知道会tle了。

然后写了一下二进制思想的方法,终于A了。。。背包好久没看了,自己还是不是很扎实啊

View Code

#include <iostream>
#include <cstdio>
#include <cstring>
#define maxn 100007
#define N 11
using namespace std;int f[maxn];
int c[N],b[N];
int V,n,m;
void zb(int c,int w,int v)
{for (int i = v; i >= c; --i)f[i] = max(f[i],f[i - c] + w);
}
void cm(int c,int w,int v)
{for (int i = c; i <= v; ++i)f[i] = max(f[i],f[i - c] + w);
}
int main()
{int i;while (~scanf("%d",&V)){scanf("%d",&n);for (i = 0; i < n; ++i)scanf("%d%d",&b[i],&c[i]);memset(f,0,sizeof(f));for (i = 0; i < n; ++i){if (b[i]*c[i] > V)cm(c[i],c[i],V);else{int k = 1;while (k < b[i]){zb(k*c[i],k*c[i],V);b[i] -= k;k*=2;}zb(b[i]*c[i],b[i]*c[i],V);}}printf("%d\n",f[V]);}return 0;
}

转载于:https://www.cnblogs.com/E-star/archive/2012/04/26/2472790.html

pku 1276 Cash Machine 多重背包相关推荐

  1. POJ 1276 Cash Machine

    很容易看出来是一个背包问题,开始把每一张钞票都跑了一遍01背包,直接TLE了. 其实就是多重背包模板题. 1 //#include <bits/stdc++.h> 2 #include & ...

  2. 【POJ】1276 Cash Machine 【背包问题】

    1 思路 多重背包问题,可以将其化为01背包问题. 若用一般方法必TLE(把n个第i种物品看成毫无关联的n个物品,即∑ ni i = 1,2-N个物品(N为物品数目)) 采用二进制思想,把n个第i种物 ...

  3. poj 1276 多重背包

    735 3 4 125 6 5 3 350 //735的最大额,3种,4个125,6个5,3个350 633 4 500 30 6 100 1 5 0 1 735 0 0 3 10 100 10 50 ...

  4. Cash Machine POJ - 1276

    解法 多重背包板子题 多重背包板子 如果上限的体积大于了给定的体积那么套完全背包 否则二进制优化成01背包 代码 #include <iostream> #include <cstr ...

  5. 多重背包模板 C++

    多重背包模板 多重背包: 有N种物品和一个容量为V的背包.第i种物品最多有numi件可用. 每件物品的重量是wi,价值是vi. 求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且价值总和最 ...

  6. POJ1276 多重背包DP 生命不息优化不止

    POJ1276 多重背包DP题 这道题弄了一个早上-一看题目是多重背包题直接敲了一个三重for循环,无限TLE,下面附上好几种解法. Description A Bank plans to insta ...

  7. 动态规划 背包问题小结 0-1背包(采药 九度第101题) 完全背包(Piggy-Bank POJ 1384) 多重背包(珍惜现在,感恩生活 九度第103题)

    本小结介绍0-1背包.完全背包以及多重背包问题 记忆要点: 0-1背包:二维数组情况下,顺序遍历体积或者倒序均可以                降维情况下需倒序遍历体积 完全背包:数组降维+顺序遍历 ...

  8. 单调队列多重背包时间复杂度O(vn)

    版权声明:本文为博主原创文章,未经博主允许不得转载. 多重背包问题: 有N种物品和容量为V的背包,若第i种物品,容量为v[i],价值为w[i],共有n[i]件.怎样装才能使背包内的物品总价值最大? 网 ...

  9. 背包问题(多重背包+0-1背包)

    一:0-1背包问题 #include<iostream> #include<algorithm> #include<cstring> const int maxn= ...

  10. 背包模型dp1:01背包,完全背包,多重背包的两大优化的详解

    01背包问题: 状态表示:f[i][j]表示从只从前i个物体里面选,切总体积不超过j的选法的集合状态表示:f[i][j]表示从只从前i个物体里面选,切总体积不超过j的选法的集合状态表示:f[i][j] ...

最新文章

  1. 马哥运维架构 第一周作业
  2. 交通标志识别项目教程
  3. python获取钉钉日志数据_python3实现zabbix告警推送钉钉的示例
  4. [C++] - C++11 多线程 - Condition Variable
  5. SparkStreaming项目(实时统计每个品类被点击的次数)
  6. 如何学习一个新的PHP框架
  7. 查询用户表(按照依赖对象排序)
  8. 说说BXP的实际中的应用(转)
  9. 自适应辛普森(Simpson)积分
  10. PyQT股票看板软件界面设计
  11. 【NLP】AI相关比赛汇总(2022)
  12. 微信支付详细教程实战
  13. 动态规划问题——当一脸懵逼后的心路历程
  14. C++中的重载丶重写丶重定义丶重定向的区别
  15. C#WinForm 分屏教程合集
  16. 【c++】_Debug_lt_pred
  17. 压力变送器的特点及用途与维护
  18. m35c android 4.4,手机实时动态:评测:索尼M35c的整体性能简介及性价比如何
  19. asp网站怎么跳转html,用asp实现网页邮箱访问的方法
  20. 奇怪的知识增加了!声呐图像的成像原理及目标检测baseline

热门文章

  1. 关于jvm的OutOfMemory:PermGen space异常的解决
  2. Windows下一个MySQL有些错误的解决方法
  3. CentOS上安装Git
  4. 最经典25本Python编程开发电子书精粹
  5. 开源数据库系统之SQLite3.2.0、FireBird2.0 Alpha-1等
  6. 【代码优化】反射机制的慎用
  7. 挑战性题目DSCT103:客观指标评价问题
  8. BZOJ1822[JSOI2010] 冷冻波
  9. 异常重试_面试题:如何基于 dubbo 进行服务治理、服务降级、失败重试?
  10. android编译log中_安卓编译 Jack server 错误问题解决办法