1. //Accepted 624 KB 16 ms
  2. //dp 背包 多重背包
  3. #include <cstdio>
  4. #include <cstring>
  5. #include <iostream>
  6. using namespace std;
  7. ;
  8. int f[imax_n];
  9. ];
  10. int v;
  11. ;
  12. int max(int a,int b)
  13. {
  14. return a>b?a:b;
  15. }
  16. void zeroOnePack(int cost,int weight)
  17. {
  18. for (int j=v;j>=cost;j--)
  19. f[j]=max(f[j],f[j-cost]+weight);
  20. }
  21. void completePack(int cost,int weight)
  22. {
  23. for (int j=cost;j<=v;j++)
  24. f[j]=max(f[j],f[j-cost]+weight);
  25. }
  26. void multiplePack(int cost,int weight,int amount)
  27. {
  28. if (cost*amount>=v)
  29. {
  30. completePack(cost,weight);
  31. return ;
  32. }
  33. ;
  34. while (k<amount)
  35. {
  36. zeroOnePack(k*cost,k*weight);
  37. amount-=k;
  38. k<<=;
  39. }
  40. zeroOnePack(amount*cost,amount*weight);
  41. }
  42. void Dp()
  43. {
  44. memset(f,,sizeof(f));
  45. ;i<=n;i++)
  46. {
  47. multiplePack(i,i,amount[i]);
  48. }
  49. ;
  50. ;i<=v;i++)
  51. ans=max(ans,f[i]);
  52. if (ans==v)
  53. {
  54. printf("Can be divided.\n");
  55. }
  56. else
  57. {
  58. printf("Can't be divided.\n");
  59. }
  60. printf("\n");
  61. }
  62. int main()
  63. {
  64. ;
  65. ],&amount[],&amount[],&amount[],&amount[],&amount[]),amount[]+amount[]+amount[]+amount[]+amount[]+amount[])
  66. {
  67. v=;
  68. ;i<=n;i++)
  69. {
  70. v+=amount[i]*i;
  71. }
  72. printf("Collection #%d:\n",++t);
  73. ==)
  74. {
  75. printf("Can't be divided.\n\n");
  76. }
  77. else
  78. {
  79. v=v/;
  80. Dp();
  81. }
  82. }
  83. ;
  84. }

poj1014 dp 多重背包的更多相关文章

  1. HDOJ(HDU).2844 Coins (DP 多重背包+二进制优化)

    HDOJ(HDU).2844 Coins (DP 多重背包+二进制优化) 题意分析 先把每种硬币按照二进制拆分好,然后做01背包即可.需要注意的是本题只需要求解可以凑出几种金钱的价格,而不需要输出种数 ...

  2. HDOJ(HDU).1059 Dividing(DP 多重背包+二进制优化)

    HDOJ(HDU).1059 Dividing(DP 多重背包+二进制优化) 题意分析 给出一系列的石头的数量,然后问石头能否被平分成为价值相等的2份.首先可以确定的是如果石头的价值总和为奇数的话,那 ...

  3. HDOJ(HDU).2191. 悼念512汶川大地震遇难同胞――珍惜现在,感恩生活 (DP 多重背包+二进制优化)

    HDOJ(HDU).2191. 悼念512汶川大地震遇难同胞――珍惜现在,感恩生活 (DP 多重背包+二进制优化) 题意分析 首先C表示测试数据的组数,然后给出经费的金额和大米的种类.接着是每袋大米的 ...

  4. Buns(dp+多重背包)

    C. Buns time limit per test 2 seconds memory limit per test 256 megabytes input standard input outpu ...

  5. CodeForces922E DP//多重背包的二进制优化

    https://cn.vjudge.net/problem/1365218/origin 题意 一条直线上有n棵树 每棵树上有ci只鸟 在一棵树底下召唤一只鸟的魔法代价是costi 每召唤一只鸟,魔法 ...

  6. BZOJ.3425.[POI2013]Polarization(DP 多重背包 二进制优化)

    BZOJ 洛谷 最小可到达点对数自然是把一条路径上的边不断反向,也就是黑白染色后都由黑点指向白点.这样答案就是\(n-1\). 最大可到达点对数,容易想到找一个点\(a\),然后将其子树分为两部分\( ...

  7. hdu1059 dp(多重背包二进制优化)

    hdu1059 题意,现在有价值为1.2.3.4.5.6的石头若干块,块数已知,问能否将这些石头分成两堆,且两堆价值相等. 很显然,愚蠢的我一开始并想不到什么多重背包二进制优化```因为我连听都没有听 ...

  8. POJ1014(多重背包)

    Dividing Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 65044   Accepted: 16884 Descri ...

  9. ACM学习历程—HDU 1059 Dividing(dp && 多重背包)

    Description Marsha and Bill own a collection of marbles. They want to split the collection among the ...

随机推荐

  1. Dorado7检验器失效原因分析

    应用场景: AutoForm1使用包含A.B两个字段的DataType1. A字段不允许为空,并且B字段取值true时A字段需要重新输入,B取其它值时A值不需重新录入. 实现方法:A字段添加了非空检验 ...

  2. 如何组织较大项目的MVC文件夹结构

    现在还用不到,拷贝下来备用,原文链接 2016 年 9 月 第 31 卷,第 9 期 ASP.NET Core - ASP.NET Core MVC 的功能切分 作者 Steve Smith | 20 ...

  3. linux笔记:文件处理命令touch,cat,more,less,head,tail

    命令名称:touch功能:新建文件命令所在目录:/bin/touch用法:touch 文件名 命令名称:cat功能:显示文件内容命令所在目录:/bin/cat用法:cat [-n] 文件名参数:-n ...

  4. Web网页性能管理详解

    你遇到过性能很差的网页吗? 这种网页响应非常缓慢,占用大量的 CPU 和内存,浏览起来常常有卡顿,页面的动画效果也不流畅. 你会有什么反应?我猜想,大多数用户会关闭这个页面,改为访问其他网站.作为一个 ...

  5. jmeter 实时搜索结果

    因为JMeter 2.13你可以得到实时搜索结果发送到后端通过 后端侦听器 使用潜在的任何后端(JDBC.JMS网络服务,€Š) 通过提供一个实现类 AbstractBackendListenerCl ...

  6. 1029c语言文法

    <程序>→<外部声明>|<程序><外部声明> <外部声明>→<函数定义>|<声明> <函数定义>→< ...

  7. TCP

    TCP(Transmission Control Protocol 传输控制协议)是一种面向连接的.可靠的.基于字节流的传输层通信协议. 在因特网协议族中,TCP层是位于IP层之上,应用层之下的中间层 ...

  8. Combination Sum II [LeetCode]

    Problem description: http://oj.leetcode.com/problems/combination-sum-ii/ Basic idea: use recursive a ...

  9. translatesAutoresizingMaskIntoConstraints

    如果是从代码层面开始使用Autolayout,需要对使用的View的translatesAutoresizingMaskIntoConstraints的属性设置为NO,即可开始通过代码添加Constr ...

  10. Go语言并发与并行学习笔记(二)

    转:http://blog.csdn.net/kjfcpua/article/details/18265461 Go语言的并发和并行 不知道你有没有注意到一个现象,还是这段代码,如果我跑在两个goro ...