P1537 弹珠

题目描述

玛莎和比尔各自有自己的弹珠收藏。他们想重新分配收藏品,使两人能平等拥有弹珠。如果所有的弹珠的价值相同,那么他们就可以平分。但不幸的是,有一些弹珠更大,或者更美丽,所以,玛莎和比尔给每个弹珠一个1到6的价值。现在他们想平分这些弹珠,使每个人得到的总价值相同。不幸的是,他们发现,他们可能无法以这种方式分弹珠(即使弹珠的总价值为偶数)。例如,如果有一个价值为1、一个价值为3和两个价值为4的弹珠,这样他们就不能把弹珠分为价值相等的两部分。因此,他们想要你写一个程序,告诉他们是否能将所有弹珠分成价值相等的两部分。

输入输出格式

输入格式:

输入文件有若干行,行中包含六个非负整数N1,。..,N6,其中mi是数值i的弹珠的价值。最大弹珠总数将达到20000。

输入文件的最后一行是0 0 0 0 0 0 。不要处理这一行。

输出格式:

对于每一组数据,输出"Collection #k:", k为输出的是第几组, 接着是"Can be divided." 或 "Can't be divided.".

每一组输出后多打一个空行。

输入输出样例

输入样例#1: 复制

1 0 1 2 0 0
1 0 0 0 1 1
0 0 0 0 0 0
输出样例#1: 复制

Collection #1:
Can't be divided. Collection #2:
Can be divided.

洛谷题解:

整个题目的思路其实就是多重背包,背包容量是所有弹珠美丽总和的一半

我们可以先记录出所有弹珠的美丽总和,如果是奇数,那么一定不能平均分成两份(这个题目里有暗示)然后我们进行dp就行了

注意事项:

1.多重背包的二进制优化问题,可以节省大量时间,二进制优化实际将多重背包转化成01背包,意思是假如某个物体数量是13,那么

我们把它拆成1,2,4,6,四个物体 进行dp就能表示出这一种物体所有不同的取得的状态

2.背包压维。

3.多组数据要清空数组。

然后 状态表示:dp【j】 表示 能否取得美丽总和为j的弹珠

     转移方程::dp[j] = dp[j] || dp[j - stack[i]];

弄清楚dp是怎样进行枚举的:

普通的背包问题的二维表的枚举方式

 #include<cstdio>
#include<cstring>
using namespace std;
int dp[];
int stack[];
int top = ;
int num[];
int sum = ;
int main()
{
int cns = ;
while("Zuo Zhe is handsome")
{
cns ++;
top = ;
sum = ;
for(int i = ;i <= ;i ++)
{
int wei;
scanf("%d",&wei);
sum += wei * i;
int zz = ;
while(wei >= zz)
{
stack[++ top] = zz * i;
wei -= zz;
zz *= ;
}
if(wei)
stack[ ++ top] = wei * i;
}
if(top == )break;
printf("Collection #%d:\n",cns);
if(sum & )
{
printf("Can't be divided.\n\n");
continue;
}
sum /= ;
memset(dp,,sizeof(dp));
dp[] = ;
for(int i = ;i <= top;i ++)
{
for(int j = sum;j >= stack[i];j --)
{
dp[j] = dp[j] || dp[j - stack[i]];
}
}
printf(dp[sum] ?"Can be divided.\n\n":"Can't be divided.\n\n");
}
return ;
}

P1537 弹珠的更多相关文章

  1. ios版弹珠游戏源码

    这个是我们比较喜欢玩的一直小游戏的,ios版弹珠游戏源码,该游戏源码来着IOS教程网其他网友提供上传的,大家可以了解一下吧. nore_js_op>     <ignore_js_op&g ...

  2. CODEVS 2994 超级弹珠

    题目描述 Description 奶牛们最近从著名的奶牛玩具制造商Tycow那里,买了一套仿真版彩蛋游戏设备.Bessie把她们玩游戏的草坪划成了N*N单位的矩阵,同时列出了她的K个对手在草地上的位置 ...

  3. BZOJ 1709: [Usaco2007 Oct]Super Paintball超级弹珠

    Description 奶牛们最近从著名的奶牛玩具制造商Tycow那里,买了一套仿真版彩弹游戏设备(类乎于真人版CS). Bessie把她们玩游戏草坪划成了N * N(1 <= N<= 1 ...

  4. BZOJ1709: [Usaco2007 Oct]Super Paintball超级弹珠

    1709: [Usaco2007 Oct]Super Paintball超级弹珠 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 324  Solved: ...

  5. 1709: [Usaco2007 Oct]Super Paintball超级弹珠

    1709: [Usaco2007 Oct]Super Paintball超级弹珠 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 339  Solved:  ...

  6. 基于ubuntu16.04部署IBM开源区块链项目-弹珠资产管理(Marbles)

    前言 本教程基本上是对Marbles项目的翻译过程. 如果英文比较好的话,建议根据官方操作说明,一步步进行环境部署.当然你也可以参考本教程在自己的主机上部署该项目. Marbles 介绍 关于 Mar ...

  7. 洛谷OJ P2356 弹珠游戏 维护前缀和

    题目描述 Description MedalPluS 和他的小伙伴 NOIRP 发掘了一个骨灰级别的游戏--超级弹珠. 游戏的内容是:在一个 n*n 的矩阵里,有若干个敌人,你的弹珠可以摧毁敌人,但只 ...

  8. BZOJ1709超级弹珠

    1709: [Usaco2007 Oct]Super Paintball超级弹珠 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 352  Solved:  ...

  9. bzoj1709 [Usaco2007 Oct]Super Paintball超级弹珠 暴力

    [Usaco2007 Oct]Super Paintball超级弹珠 Description 奶牛们最近从著名的奶牛玩具制造商Tycow那里,买了一套仿真版彩弹游戏设备(类乎于真人版CS). Bess ...

随机推荐

  1. 大碗宽面Alpha第九周会议总结

    软件工程每周博客: 本周二我们进行了小组会议,对正在做的评课网站——海大优选进行了整体分析和明确分工.首先我们对整体网页进行了需求分析和框架分析,然后进行了分工,前端同学两人,后端同学两人,文档同学一 ...

  2. 75 OpenCV编译、图像处理等

    0 引言 记录图像处理的一些经验和使用OpenCV 等库的注意事项. 1 opencv中的坐标系 一图以蔽之~ 2 opencv 3.4.0 + opencv_contrib + qt编译 主要参考了 ...

  3. JavaWeb解决中文乱码

    1.Get请求,方案有两种 A:修改Tomcat配置文件 server.xml   URIEncoding="UTF-8" 如:<Connector port="8 ...

  4. (转)MAVEN的安装和Myeclipse+maven的配置和使用

    转:https://blog.csdn.net/shikongshengzhu/article/details/51779159 MAVEN的安装和Myeclipse+maven的配置和使用 步骤如下 ...

  5. 国内网络安装ubuntu软件慢的解决方法

    以安装scikit-image为例: pip3 install scikit-image==0.13.0 -i https://pypi.tuna.tsinghua.edu.cn/simple 或者 ...

  6. Kafka启动报错

    文章目录 问题 解决 问题 通过 ./kafka-server-start.sh ../config/server.properties 启动kafka 之前在server.properties中修改 ...

  7. 28. Python编写自动化测试用例

    接口文档已经提供了,requests库.unittest单元测试框架也已经介绍过,笔者相信读者朋友已经可以独立编写接口自动化测试用例了.但是有一些细节,我们需要聊一下.比如我们写登录接口测试用例,用户 ...

  8. activiti7从act_ge_bytearray表中查询资源文件并保存到桌面文件夹中

    package com.zcc.activiti02; import org.activiti.engine.ProcessEngine;import org.activiti.engine.Proc ...

  9. FrameWork内核解析之Handler消息机制(二)

    阿里P7Android高级架构进阶视频(内含Handler视频讲解)免费学习请点击:https://space.bilibili.com/474380680 一.Handler 在Android开发的 ...

  10. 分布式-技术专区-Redis分布式锁实现-第二步

    再上次篇章中汇集了相关的分布式锁的概念进行控制,接下来我们采用的是注解声明式开发服务方案,进行声明式开发代替编程式开发方案.  1.利用aop实现分布式锁2.只用在方法上加个注解,同时加上了重试机制 ...