hdu1059
#include <stdio.h>
#include <string.h>
#define MAXN 120005
int main()
{
int num[7];
int T = 0;
while (scanf("%d %d %d %d %d %d", &num[1], &num[2], &num[3], &num[4], &num[5], &num[6]) != EOF)
{
T ++;
if (!(num[1] || num[2] || num[3] || num[4] || num[5] || num[6]))
break;
int sum = 0;
int i, j, k;
for (i=1; i<=6; i++)
sum += i * num[i];
if (sum % 2 != 0)
{
printf("Collection #%d:\nCan't be divided.\n\n", T);
continue;
}
int total = sum / 2;
bool flag[MAXN];
memset(flag, false, (total+1)*sizeof(flag[0]));
flag[0] = true;
for (i=1; i<=num[1]; i++)
flag[i] = true;
int much = num[1];
for (i=2; i<=6; i++)
{
if (num[i] == 0)
continue;
for (j=much; j>=0; j--)
{
if (flag[j])
{
for (k=1; k<=num[i] && j + k * i <= total; k++)
{
if (flag[j + k * i])
break;
flag[j + k * i] = true;
}
}
}
much += num[i] * i;
}
if (flag[total])
{
printf("Collection #%d:\nCan be divided.\n\n", T);
}
else
{
printf("Collection #%d:\nCan't be divided.\n\n", T);
}
}
return 0;
}
hdu1059的更多相关文章
- hdu1059 dp(多重背包二进制优化)
hdu1059 题意,现在有价值为1.2.3.4.5.6的石头若干块,块数已知,问能否将这些石头分成两堆,且两堆价值相等. 很显然,愚蠢的我一开始并想不到什么多重背包二进制优化```因为我连听都没有听 ...
- hdu1059 多重背包(转换为01背包二进制优化)
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1059 之前写过一个多重背包二进制优化的博客,不懂请参考:http://www.cnblog ...
- hdu1059 Dividing ——多重背包
link:http://acm.hdu.edu.cn/showproblem.php?pid=1059 最简单的那种 #include <iostream> #include <cs ...
- 【二进制拆分多重背包】【HDU1059】【Dividing】
Dividing Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total S ...
- hdu1059(多重背包)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1059 题意 : 按顺序读入一些列数,所对应的序列代表价值,数值代表个数(如a[5]=6 ,代表价值为五 ...
- hdu-1059(多重背包+二进制优化)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1059 题意:输入6个数,每个数ni代表价值为i的物品有ni个.求如果这些物品能均分给两个人,每个人获得 ...
- HDU1059 二进制拆分优化多重背包
/*问你能不能将给出的资源平分成两半,那么我们就以一半为背包,运行多重背包模版 但是注意了,由于个数过大,直接运行会超时,所以要用二进制拆分每种的个数*/ #include<stdio.h> ...
- dp之多重背包hdu1059
题意:价值为1,2,3,4,5,6. 分别有n[1],n[2],n[3],n[4],n[5],n[6]个.求能否找到满足价值刚好是所有的一半的方案. 思路:简单的多重背包,我建议多重背包都用二进制拆分 ...
- hdu1059(多重背包优化)
使用一种二进制的优化, 可以完美的解决这题,<背包九讲>中说的非常好 但是还有一种线性复杂的算法. 应该算是该题很巧妙的解法 ;i++) { ;l--) { ) continue; ;k& ...
随机推荐
- [IDE]Intellij Idea学习整理
一.优化 1.在IDEA的安装目录的bin目录下,找到如图所示的两个文件,根据所在系统是32位还是64位打开相应的文件. 2.以64位为例,打开idea64.exe.vmoptions. 如图修改参数 ...
- HDU 之 I Hate It
I Hate It Time Limit ...
- Idea 使用过程中遇到的问题记录
1.在Idea启动Tomcat,有时候提示项目启动 failed,请查看日志,此时的日志在Tomcat主目录的日志文件中是没有的,此时的日志记录在: C:\Users\wanhua.lu\.Intel ...
- 投影矩阵、最小二乘法和SVD分解
投影矩阵广泛地应用在数学相关学科的各种证明中,但是由于其概念比较抽象,所以比较难理解.这篇文章主要从最小二乘法的推导导出投影矩阵,并且应用SVD分解,写出常用的几种投影矩阵的形式. 问题的提出 已知有 ...
- codevs1217 借教室
借教室(classroom.cpp/c/pas)[问题描述]在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室 ...
- Codeforces 486D Valid Sets:Tree dp【n遍O(n)的dp】
题目链接:http://codeforces.com/problemset/problem/486/D 题意: 给你一棵树,n个节点,每个节点的点权为a[i]. 问你有多少个连通子图,使得子图中的ma ...
- 分享知识快乐自己:Layui 常用样式
下载 样式包 Layui layer 引入 js 及 样式: <link rel="stylesheet" href="${ctx}/static/layui/ ...
- AngularJS-Basic(一)
MVC:作为DataModel的$scope 依赖注入DI 模块化Module Service Filter Two way DateBinding Directive Unit Testing&am ...
- 有关HL7 的C# 源码
https://github.com/OSEHRA/mdo C# http://sourceforge.net/p/nhapi/code/HEAD/tree/NHapi20/ ...
- MySQL的分页技术总结
利用子查询示例: SELECT * FROM your_table WHERE id <= (SELECT id FROM your_table ORDER BY id desc LIMIT ( ...