点击打开链接

题目意思:

有各种物品,各自的价值为1,2,3,4,5,6;

给出各自的数目,判断能否将其平分。

使用母函数的话,果断超时。

所以才用多重背包,这里需要剪枝一下了。

#include"stdio.h"
#include"string.h"
int dp[60011];
int main()
{int num[7];int i,l,k;int sum;int total;int Case=1;while(scanf("%d",&num[1])!=-1){sum=num[1];for(i=2;i<7;i++){scanf("%d",&num[i]);sum+=num[i]*i;}if(sum==0)break;if(sum%2==1){printf("Collection #%d:\n",Case++);printf("Can't be divided.\n\n");continue;}total=sum/2;for(l=1;l<=total;l++)dp[l]=0;for(k=0;k<=num[1]&&k<=total;k++)dp[k]=1;for(i=2;i<7;i++){for(l=total;l>=0;l--){if(dp[l]==0)continue;for(k=1;k<=num[i]&&k<=total;k++){if(dp[k*i+l])break;dp[k*i+l]=1;}}}if(dp[total]){printf("Collection #%d:\n",Case++);printf("Can be divided.\n\n");}else{printf("Collection #%d:\n",Case++);printf("Can't be divided.\n\n");}}return 0;
}

转载于:https://www.cnblogs.com/yyf573462811/archive/2012/11/06/6365155.html

hdu 1059 Dividing(多重DP)相关推荐

  1. (step3.3) hdu 1059(Dividing——多重背包)

    题目大意:分别给出价值为1~6的石头的数量.问能否将这些石头等价值平分... 解题思路:多重背包 1)多重背包的典型描述是这样的:给出n种物品,背包的容量为V.每种物品的可用数量为num[i],所占体 ...

  2. HDU 1059 Dividing 多重背包

    这题想了想用母函数应该也可以做,不过得考虑一个细节,就是加起来的总和是否为奇数,我找了好久一直没找出错误,原来是没考虑奇数..  fuck  这种问题我怎么能不考虑奇数呢.....  啊 啊 啊啊 啊 ...

  3. HDU 1059 Dividing

    题意:有6种大理石(marble,怀疑是不是大理石的意思...几块大理石也值得争?!),每种若干件且每种大理石有一定的价值(分别为1,2,3,4,5,6).问能否分成价值相等的两份. 分析:多重背包. ...

  4. 【HDU 1059】Dividing(多重背包)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1059 题意:有6种物品,价值分别是1,2,3,4,5,6,每种物品有n[ i ]个,,问是否能将其平分 ...

  5. Dividing(HDU 1059)(多重背包_二进制优化)

    题目链接: 题意:有价值分别为1,2,3,4,5,6的marbles(大理石)若干,问是否能使这些marbles平分.[marbles总数不超过2e4(很明显这是一个大常数,所以用二进制优化来做)] ...

  6. Dividing 多重背包 倍增DP

    Dividing 给出n个物品的价值和数量,问是否能够平分. 1 #include <iostream> 2 #include <cstring> 3 #include < ...

  7. HDU 2844 Coins 多重背包

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2844 Coins Time Limit: 2000/1000 MS (Java/Others)Mem ...

  8. HDU 2196 Computer 树形DP经典题

    链接:http://acm.hdu.edu.cn/showproblem.php? pid=2196 题意:每一个电脑都用线连接到了还有一台电脑,连接用的线有一定的长度,最后把全部电脑连成了一棵树,问 ...

  9. HDU 2084 数塔 DP

    http://acm.hdu.edu.cn/showproblem.php?pid=2084 题目: 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走 ...

最新文章

  1. SpringCloud系列之服务消费Ribbon和Feign区别
  2. 安卓学习 之 ContentResolver内容提供者(七)
  3. 乔布斯死后的300亿遗产终于被败光了,没想到竟是干了这件事
  4. Java:逐步读取/流式传输CSV文件
  5. HashSet存储自定义对象保证元素唯一性图解原理及代码优化
  6. namespace用法
  7. 浅论 C++ 的复杂性
  8. 小学计算机属于数学与科学吗,我是计算机专业,想考小学信息技术教师资格证没有,那我是报科学还是...
  9. Excel导入SQLserver数据长度过长导入失败
  10. mysql有什么编程软件_常用数据库编程软件有哪些?
  11. html网页随机抽奖怎么制作,html简单易懂的随机抽奖
  12. android上获取屏幕高度,在Android中获取屏幕高度
  13. C++的O2、O3到底是个什么鬼
  14. 关于c++产生string subscript out of range问题的自己的经历与解决方案
  15. php通过imap获取腾讯企业邮箱信息后的解码处理
  16. String字符串操作--切割,截取,替换,查找,比较,去空格.....
  17. MATLAB 数据处理(二)非线性拟合——洛伦兹拟合(Lorentz fit)
  18. DOS下对系统重新进行分区
  19. MySQL or条件命中
  20. Word中样式与样式集

热门文章

  1. Java杂记3—流程控制之条件 1
  2. Disabling Shortcut Keys in Full Screen mode
  3. jacson 将json字符串转换为list
  4. ant通用模板(build_common.xml)使用介绍
  5. Domino Web开发规则之一:Notes命名规范
  6. 面试题 04.01. 节点间通路
  7. flex和java_flex和java相结合准备工作和一个实例
  8. 8-字符串的压缩存储
  9. android library使用,Android:Library module的使用
  10. vue 毫秒数转年月日_Vue将毫秒数转化为正常日期格式的实例_盂希_前端开发者