P1537 弹珠
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 0 1 2 0 0
1 0 0 0 1 1
0 0 0 0 0 0
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 弹珠的更多相关文章
- ios版弹珠游戏源码
这个是我们比较喜欢玩的一直小游戏的,ios版弹珠游戏源码,该游戏源码来着IOS教程网其他网友提供上传的,大家可以了解一下吧. nore_js_op> <ignore_js_op&g ...
- CODEVS 2994 超级弹珠
题目描述 Description 奶牛们最近从著名的奶牛玩具制造商Tycow那里,买了一套仿真版彩蛋游戏设备.Bessie把她们玩游戏的草坪划成了N*N单位的矩阵,同时列出了她的K个对手在草地上的位置 ...
- BZOJ 1709: [Usaco2007 Oct]Super Paintball超级弹珠
Description 奶牛们最近从著名的奶牛玩具制造商Tycow那里,买了一套仿真版彩弹游戏设备(类乎于真人版CS). Bessie把她们玩游戏草坪划成了N * N(1 <= N<= 1 ...
- BZOJ1709: [Usaco2007 Oct]Super Paintball超级弹珠
1709: [Usaco2007 Oct]Super Paintball超级弹珠 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 324 Solved: ...
- 1709: [Usaco2007 Oct]Super Paintball超级弹珠
1709: [Usaco2007 Oct]Super Paintball超级弹珠 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 339 Solved: ...
- 基于ubuntu16.04部署IBM开源区块链项目-弹珠资产管理(Marbles)
前言 本教程基本上是对Marbles项目的翻译过程. 如果英文比较好的话,建议根据官方操作说明,一步步进行环境部署.当然你也可以参考本教程在自己的主机上部署该项目. Marbles 介绍 关于 Mar ...
- 洛谷OJ P2356 弹珠游戏 维护前缀和
题目描述 Description MedalPluS 和他的小伙伴 NOIRP 发掘了一个骨灰级别的游戏--超级弹珠. 游戏的内容是:在一个 n*n 的矩阵里,有若干个敌人,你的弹珠可以摧毁敌人,但只 ...
- BZOJ1709超级弹珠
1709: [Usaco2007 Oct]Super Paintball超级弹珠 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 352 Solved: ...
- bzoj1709 [Usaco2007 Oct]Super Paintball超级弹珠 暴力
[Usaco2007 Oct]Super Paintball超级弹珠 Description 奶牛们最近从著名的奶牛玩具制造商Tycow那里,买了一套仿真版彩弹游戏设备(类乎于真人版CS). Bess ...
随机推荐
- layer icon对应图标
layer icon对应图标 信息框(msg.alert.open.confirm) icon:0 icon:1 icon:2 icon:3 icon:4 icon:5 icon:6 icon:16 ...
- MFC不同窗口之间传递数据
问题的由来: 最近在学习串口通信编程,参考的例子大多数都是在一个对话框中同时完成对串口的配置及数据收发的功能.这种方式不太适合于写自己的应用程序(会使得程序界面比较混乱,无法突出程序的重点),因此想让 ...
- dedecms SESSION变量覆盖导致SQL注入漏洞修补方案
dedecms的/plus/advancedsearch.php中,直接从$_SESSION[$sqlhash]获取值作为$query带入SQL查询,这个漏洞的利用前提是session.auto_st ...
- 前端每日实战:57# 视频演示如何用纯 CSS 创作一双黑暗中的眼睛
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/xzYVzO 可交互视频 此视频是可 ...
- 大数据和AI怎么与现代教育相结合?
大数据和AI怎么与现代教育相结合? 比尔·盖茨曾预言,"5年以后,你将可以在网上免费获取世界上最好的课程,而且这些课程比任何一个单独大学提供的课程都要好." 现在看来,虽然并不是每 ...
- Xen的概况
1. Xen Live CD xen也有Live CD的形式,当然是少不了Dom 0的,有Apline Linux和Debian两种. 参见http://wiki.xen.org/wiki/LiveC ...
- 4.Jmeter 快速入门教程(三-2) -- 设置集结点
集合点:简单来理解一下,虽然我们的“性能测试”理解为“多用户并发测试”,但真正的并发是不存在的,为了更真实的实现并发这感念,我们可以在需要压力的地方设置集合点, 还拿那个用户和密码的地方,每到输入用户 ...
- 关于 AfxGetStaticModuleState ()
写MFC的DLL的时候,总会在自动生成的代码框架里看到提示,需要在每一个输出的函数开始添加上AFX_MANAGE_STATE (AfxGetStaticModuleState()).一直不明白这样做的 ...
- Spring Data JPA one to one 共享主键关联
/** * Created by xiezhiyan on 17-9-13. */@Entitypublic class Token { @Id @Column(name = "store_ ...
- leetcode.矩阵.240搜索二维矩阵II-Java
1. 具体题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target.该矩阵具有以下特性:每行的元素从左到右升序排列:每列的元素从上到下升序排列. 示例: 现有矩阵 ...