HDU - 1495 非常可乐 bfs互倒三杯水
非常可乐
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 16071 Accepted Submission(s): 6488
4 1 3
0 0 0
3
#include<stdio.h>
#include<string.h>
#include<queue>
using namespace std; struct Node{
int x,y,z,s;
}node;
int bo[][][]; int main()
{
int a,b,c,i;
while(scanf("%d%d%d",&a,&b,&c)&&!(a==&&b==&&c==)){
if(a&){
printf("NO\n");
continue;
}
queue<Node> q;
memset(bo,,sizeof(bo));
bo[a][][]=;
node.x=a;
node.y=;
node.z=;
node.s=;
q.push(node);
int f=;
while(q.size()){
for(i=;i<=;i++){
int tx=q.front().x;
int ty=q.front().y;
int tz=q.front().z;
int ttx,tty,ttz;
if(i==){
ttx=tx>b-ty?tx-b+ty:;
tty=tx>b-ty?b:ty+tx;
ttz=tz;
}
if(i==){
ttx=tx>c-tz?tx-c+tz:;
tty=ty;
ttz=tx>c-tz?c:tz+tx;
}
if(i==){
ttx=ty>a-tx?a:tx+ty;
tty=ty>a-tx?ty-a+tx:;
ttz=tz;
}
if(i==){
ttx=tx;
tty=ty>c-tz?ty-c+tz:;
ttz=ty>c-tz?c:tz+ty;
}
if(i==){
ttx=tz>a-tx?a:tx+tz;
tty=ty;
ttz=tz>a-tx?tz-a+tx:;
}
if(i==){
ttx=tx;
tty=tz>b-ty?b:ty+tz;
ttz=tz>b-ty?tz-b+ty:;
}
if(ttx==a/&&(tty==a/||ttz==a/)){
f=q.front().s+;
break;
}
if(bo[ttx][tty][ttz]==){
bo[ttx][tty][ttz]=;
node.x=ttx;
node.y=tty;
node.z=ttz;
node.s=q.front().s+;
q.push(node);
}
}
if(f!=) break;
q.pop();
}
if(f==) printf("NO\n");
else printf("%d\n",f);
}
return ;
}
HDU - 1495 非常可乐 bfs互倒三杯水的更多相关文章
- HDU 1495 非常可乐 BFS 搜索
http://acm.hdu.edu.cn/showproblem.php?pid=1495 题目就不说了, 说说思路! 倒可乐 无非有6种情况: 1. S 向 M 倒 2. S 向 N 倒 3. N ...
- (step4.2.5)hdu 1495(非常可乐——BFS)
题目大意:输入三个整数 a,b,c. a : 可乐瓶的容量,b: 甲杯的容量 ,c: 乙杯的容量.问能否用这三个被来实现饮料的平分???如果可以输出倒饮料的次数, 否则输出NO 解题思路:BFS ...
- HDU 1495 非常可乐 BFS搜索
题意:有个为三个杯子(杯子没有刻度),体积为s,n,m,s=m+n, 刚开始只有体积为s的杯子装满可乐,可以互相倒,问你最少的次数使可乐均分,如果没有结果,输出-1; 分析:直接互相倒就完了,BFS模 ...
- HDU 1495 非常可乐 bfs 难度:1
http://acm.hdu.edu.cn/showproblem.php?pid=1495 第三个杯子的盛水量可由前两个杯子得到,而前两个杯子状态总数在100*100以内,穷举可实现 #includ ...
- HDU 1495 非常可乐 BFS
题目大意:中文题不说了. 题目思路:我有同学用GCD数论写出来的代码很简洁,但是很抱歉,数论蒟蒻,我觉得比赛的时候我没办法推出.如果用BFS的话思路很简单的,就是6方向广搜,只不过稍微麻烦点.具体看代 ...
- BFS(倒水问题) HDU 1495 非常可乐
题目传送门 /* BFS:倒水问题,当C是奇数时无解.一共有六种情况,只要条件符合就入队,我在当该状态vised时写了continue 结果找了半天才发现bug,泪流满面....(网上找份好看的题解都 ...
- HDU 1495 非常可乐(数论,BFS)
非常可乐 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 非常可乐---hdu 1495(BFS)
http://acm.hdu.edu.cn/showproblem.php?pid=1495 题意: 有3个杯子a b c:a=b+c:然后刚开始时只有a是满的,其它为空的,然后a b c三个之间互相 ...
- HDU 1495 非常可乐(BFS倒水问题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1495 题目大意:只有两个杯子,它们的容量分别是N 毫升和M 毫升 可乐的体积为S (S<101) ...
随机推荐
- 《TCP/IP具体解释卷2:实现》笔记--UDP:用户数据报协议
用户数据报协议.即UDP,是一个面向数据报的简单运输层协议:进程的每次输出操作仅仅产生一个UDP数据报,从而发送 一个IP数据报. 进程通过创建一个Internet域内的SOCK_DGRAM类型的插口 ...
- ContentPresenter理解
这是2年前写了一篇文章 http://www.cnblogs.com/Clingingboy/archive/2008/07/03/wpfcustomcontrolpart-1.html 我们先来看M ...
- Android自己定义控件--下拉刷新的实现
我们在使用ListView的时候.非常多情况下须要用到下拉刷新的功能.为了了解下拉刷新的底层实现原理,我採用自己定义ListView控件的方式来实现效果. 实现的基本原理是:自己定义ListView, ...
- [IT新应用]如何拯救死机的苹果手机(iPhone X)
突然白天接了一个电话,苹果就死机了.这是用这个手机半年来第一次.貌似还能接电话,就是屏幕上一个白色的圆圈,一直转啊转. 后来百度了一下,找到这一篇.将重点部分摘录如下: http://www.sohu ...
- 【BZOJ3307】雨天的尾巴 线段树合并
[BZOJ3307]雨天的尾巴 Description N个点,形成一个树状结构.有M次发放,每次选择两个点x,y对于x到y的路径上(含x,y)每个点发一袋Z类型的物品.完成所有发放后,每个点存放最多 ...
- EasyDarwin添加自定义的服务模块EasyMyModule
EasyDarwin模块的要求 每个QTSS模块必须实现两个方法函数: 一个Main入口函数,服务器在启动的时候将调用这个方法函数,来对您开发的模块所在的QTSS stub库进行初始化. 一个Disp ...
- Ahead-of-time compilation
https://en.wikipedia.org/wiki/Ahead-of-time_compilation
- Java类加载器(死磕5)
Java类加载器( CLassLoader ) 死磕5: 自定义一个文件系统classLoader 本小节目录 5.1. 自定义类加载器的基本流程 5.2. 入门案例:自定义文件系统类加载器 5 ...
- Django中如何实现数据库路由?
虽然我们提供了数据库的信息,它知道怎么连接数据库,但问题是我们保存里面有很多模型,它不知道哪个模型存到哪个数据库.这就要求我们自己来指定,也就是我们自己来实现一个数据库路由.一个数据库路由是一个拥有4 ...
- A Windows GUI for Appium
A Windows GUI for Appium If you are new to Appium then please see the Getting started guide for more ...