hdu 1059 Dividing(多重DP)
点击打开链接
题目意思:
有各种物品,各自的价值为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)相关推荐
- (step3.3) hdu 1059(Dividing——多重背包)
题目大意:分别给出价值为1~6的石头的数量.问能否将这些石头等价值平分... 解题思路:多重背包 1)多重背包的典型描述是这样的:给出n种物品,背包的容量为V.每种物品的可用数量为num[i],所占体 ...
- HDU 1059 Dividing 多重背包
这题想了想用母函数应该也可以做,不过得考虑一个细节,就是加起来的总和是否为奇数,我找了好久一直没找出错误,原来是没考虑奇数.. fuck 这种问题我怎么能不考虑奇数呢..... 啊 啊 啊啊 啊 ...
- HDU 1059 Dividing
题意:有6种大理石(marble,怀疑是不是大理石的意思...几块大理石也值得争?!),每种若干件且每种大理石有一定的价值(分别为1,2,3,4,5,6).问能否分成价值相等的两份. 分析:多重背包. ...
- 【HDU 1059】Dividing(多重背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1059 题意:有6种物品,价值分别是1,2,3,4,5,6,每种物品有n[ i ]个,,问是否能将其平分 ...
- Dividing(HDU 1059)(多重背包_二进制优化)
题目链接: 题意:有价值分别为1,2,3,4,5,6的marbles(大理石)若干,问是否能使这些marbles平分.[marbles总数不超过2e4(很明显这是一个大常数,所以用二进制优化来做)] ...
- Dividing 多重背包 倍增DP
Dividing 给出n个物品的价值和数量,问是否能够平分. 1 #include <iostream> 2 #include <cstring> 3 #include < ...
- HDU 2844 Coins 多重背包
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2844 Coins Time Limit: 2000/1000 MS (Java/Others)Mem ...
- HDU 2196 Computer 树形DP经典题
链接:http://acm.hdu.edu.cn/showproblem.php? pid=2196 题意:每一个电脑都用线连接到了还有一台电脑,连接用的线有一定的长度,最后把全部电脑连成了一棵树,问 ...
- HDU 2084 数塔 DP
http://acm.hdu.edu.cn/showproblem.php?pid=2084 题目: 在讲述DP算法的时候,一个经典的例子就是数塔问题,它是这样描述的: 有如下所示的数塔,要求从顶层走 ...
最新文章
- SpringCloud系列之服务消费Ribbon和Feign区别
- 安卓学习 之 ContentResolver内容提供者(七)
- 乔布斯死后的300亿遗产终于被败光了,没想到竟是干了这件事
- Java:逐步读取/流式传输CSV文件
- HashSet存储自定义对象保证元素唯一性图解原理及代码优化
- namespace用法
- 浅论 C++ 的复杂性
- 小学计算机属于数学与科学吗,我是计算机专业,想考小学信息技术教师资格证没有,那我是报科学还是...
- Excel导入SQLserver数据长度过长导入失败
- mysql有什么编程软件_常用数据库编程软件有哪些?
- html网页随机抽奖怎么制作,html简单易懂的随机抽奖
- android上获取屏幕高度,在Android中获取屏幕高度
- C++的O2、O3到底是个什么鬼
- 关于c++产生string subscript out of range问题的自己的经历与解决方案
- php通过imap获取腾讯企业邮箱信息后的解码处理
- String字符串操作--切割,截取,替换,查找,比较,去空格.....
- MATLAB 数据处理(二)非线性拟合——洛伦兹拟合(Lorentz fit)
- DOS下对系统重新进行分区
- MySQL or条件命中
- Word中样式与样式集
热门文章
- Java杂记3—流程控制之条件 1
- Disabling Shortcut Keys in Full Screen mode
- jacson 将json字符串转换为list
- ant通用模板(build_common.xml)使用介绍
- Domino Web开发规则之一:Notes命名规范
- 面试题 04.01. 节点间通路
- flex和java_flex和java相结合准备工作和一个实例
- 8-字符串的压缩存储
- android library使用,Android:Library module的使用
- vue 毫秒数转年月日_Vue将毫秒数转化为正常日期格式的实例_盂希_前端开发者