题意:

有6种不同价值的物品,然后问你能不能分成两半使得两堆价值相等;

思路:

一共有20000*6=120000 多的价值,

总共背包有20000个,价值最大是120000,看看能不能DP到value/2就好了,所以DP数组可以开60000;

价值乘以背包数,复杂度好大?

我们知道一个数的组成可以搞成一个二进制,所以对于每个背包的数量,都可以搞成几个二进制数的背包数量

那么就是有那么多背包,简单DP一下就好了;

#include<bits/stdc++.h>
using namespace std; const int N=6e4+10;
int num[7];
bool dp[N]; int main()
{
int cas=1;
while(1)
{
bool flag=false;
int sum=0;
for(int i=1;i<=6;i++)
{
scanf("%d",&num[i]);
sum+=num[i]*i;
if(num[i])
flag=true;
}
if(!flag) break;
printf("Collection #%d:\n",cas++);
if(sum%2)
{
printf("Can't be divided.\n\n");
continue;
}
memset(dp,0,sizeof(dp));
sum/=2;
int k,w;
dp[0]=true;
for(int i=1;i<=6;i++)
{
k=1;
while(k<=num[i])
{
w=k*i;
for(int j=sum;j>=w;j--)
{
if(dp[j-w])
dp[j]=1;
}
num[i]-=k;
k<<=1;
}
w=num[i]*i;
for(int j=sum;j>=w;j--)
if(dp[j-w])
dp[j]=1;
}
if(dp[sum])
printf("Can be divided.\n\n");
else
printf("Can't be divided.\n\n");
}
return 0;
}

HDU1059 【DP·二进制数优化】的更多相关文章

  1. 【BZOJ-4518】征途 DP + 斜率优化

    4518: [Sdoi2016]征途 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 230  Solved: 156[Submit][Status][ ...

  2. 【BZOJ-3437】小P的牧场 DP + 斜率优化

    3437: 小P的牧场 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 705  Solved: 404[Submit][Status][Discuss ...

  3. 【BZOJ-1010】玩具装箱toy DP + 斜率优化

    1010: [HNOI2008]玩具装箱toy Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 8432  Solved: 3338[Submit][St ...

  4. 【Codeforces 321E / BZOJ 5311】【DP凸优化】【单调队列】贞鱼

    目录 题意: 输入格式 输出格式 思路: DP凸优化的部分 单调队列转移的部分 坑点 代码 题意: 有n条超级大佬贞鱼站成一行,现在你需要使用恰好k辆车把它们全都运走.要求每辆车上的贞鱼在序列中都是连 ...

  5. HDU3480_区间DP平行四边形优化

    HDU3480_区间DP平行四边形优化 做到现在能一眼看出来是区间DP的问题了 也能够知道dp[i][j]表示前  i  个节点被分为  j  个区间所取得的最优值的情况 cost[i][j]表示从i ...

  6. 动态规划DP的优化

    写一写要讲什么免得忘记了.DP的优化. 大概围绕着"是什么","有什么用","怎么用"三个方面讲. 主要是<算法竞赛入门经典>里 ...

  7. 【bzoj5197】[CERC2017]Gambling Guide 期望dp+堆优化Dijkstra

    题目描述 给定一张n个点,m条双向边的无向图. 你要从1号点走到n号点.当你位于x点时,你需要花1元钱,等概率随机地买到与x相邻的一个点的票,只有通过票才能走到其它点. 每当完成一次交易时,你可以选择 ...

  8. 「学习笔记」wqs二分/dp凸优化

    [学习笔记]wqs二分/DP凸优化 从一个经典问题谈起: 有一个长度为 \(n\) 的序列 \(a\),要求找出恰好 \(k\) 个不相交的连续子序列,使得这 \(k\) 个序列的和最大 \(1 \l ...

  9. 【BZOJ】1096: [ZJOI2007]仓库建设(dp+斜率优化)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1096 首先得到dp方程(我竟然自己都每推出了QAQ)$$d[i]=min\{d[j]+cost(j+ ...

随机推荐

  1. teradata培训文档 相关索引

    teradata培训文档 http://wenku.baidu.com/view/ec44c201cc175527072208ba.html Teradata 和Greenplum 的讨论 http: ...

  2. 果壳、推库、虎秀、知乎、it世界

    果壳.推库.虎秀.知乎.it世界

  3. GCJ Qualification Round 2016 D题

    这题就是找规律.小数据还是挺容易想的.大数据得再深入分析一下. 题意挺绕的. 其实就是字符串转换.字符串只能有两种字母,L或G.给定K和C,就能通过规则生成目标字符串. 那么,如果知道了K和C,以及目 ...

  4. spring 集成 mybatis 后数据源初始化失败问题分析

    问题背景: 项目使用spring,springmvc框架,后边需操作关系数据库,选择了mybatis + durid,集成mybatis后,项目一直启动失败.错误的原因是dataSource初始化的时 ...

  5. JQery 动态填充数据到table 中

    说明: 1.把数据库中的数据查询出来,填充到前台的table中,注意 从数据查询出来的 属性IsNew="0"(table 行tr的属性) 2.单击“添加”按钮 新添加行追加到ta ...

  6. Asynchronous programming with async and await (C#)

    Asynchronous Programming with async and await (C#) | Microsoft Docs https://docs.microsoft.com/en-us ...

  7. HTTP Status 405

    分析原因: 1.doPost()和getPost()两个方法继承了父类,造成出错.

  8. LightOJ1245 Harmonic Number (II) —— 规律

    题目链接:https://vjudge.net/problem/LightOJ-1245 1245 - Harmonic Number (II)    PDF (English) Statistics ...

  9. PHP编写网页BS结构计算器

    利用PHP和Html + javascript 编写一个简单的网页计算器程序,可以根据这种有趣的开发构架出更加有趣的网页.​1. [代码]PHP计算器    <html><head& ...

  10. linux应用之gcc编译器的安装及使用

    gcc是linux系统下功能十分强大的编译器. 本人使用的是CentOS 6.6 64位系统,由于在安装系统的时候并没有勾选安装gcc编译器,因此需要自行安装gcc编译器. 使用yum安装gcc 对于 ...