#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
int vi[][][];
using namespace std;
struct Point{
int a,b,c,v;
Point(int x,int y,int z,int vv){a=x,b=y,c=z,v=vv;}
};
void pu(int &a,int &b,int c)
{
if(b==c)
return ;
if(a+b<=c)
b+=a,a=;
else
a-=c-b,b=c;
}
int Min=;
void bfs(int a,int b,int c)
{
int i,j,x,y,z;
queue<Point> q;
Point p(,,c,);
q.push(p);
int s=c,n=a,m=b;
while(!q.empty())
{
p=q.front();
q.pop();
x=p.a,y=p.b,z=p.c;
//cout<<x<<" "<<y<<" "<<z<<"* "<<p.v<<endl;
if(x*==s)
{
if(y*==s||z*==s)
{
if(p.v<Min)
Min=p.v;
}
else
{
if(p.v+<Min)
Min=p.v+;
}
}
if(y*==s)
{
if(x*==s||z*==s)
{
if(p.v<Min)
Min=p.v;
}
else//cout<<x<<" "<<y<<" "<<" "<<s<<" "<<Min<<" "<<p.v+1<<endl;
if(p.v+<Min)
{
Min=p.v+; }
}
if(z*==s)
{
if(x*==s||y*==s)
{
if(p.v<Min)
Min=p.v;
}
else
{
if(p.v+<Min)
Min=p.v+;
}
}
vi[x][y][z]=;
int t1,t2;
t1=x,t2=y;
pu(t1,t2,m);
if(!vi[t1][t2][z])
q.push(Point(t1,t2,z,p.v+));
t1=x,t2=z;
pu(t1,t2,s);
if(!vi[t1][y][t2])
q.push(Point(t1,y,t2,p.v+));
t1=y,t2=x;
pu(t1,t2,n);
if(!vi[t2][t1][z])
q.push(Point(t2,t1,z,p.v+));
t1=y,t2=z;
pu(t1,t2,s);
if(!vi[x][t1][t2])
q.push(Point(x,t1,t2,p.v+));
t1=z,t2=x;
pu(t1,t2,n);
if(!vi[t2][y][t1])
q.push(Point(t2,y,t1,p.v+));
t1=z,t2=y;
pu(t1,t2,m);
if(!vi[x][t2][t1])
q.push(Point(x,t2,t1,p.v+));
}
}
int main()
{
int a,b,c;
while(scanf("%d%d%d",&a,&b,&c),a||b||c)
{
if(a%==||a==||b==||c==)
{
printf("NO\n");
continue;
}
memset(vi,,sizeof(vi));
Min=;
bfs(b,c,a);
if(Min==)
printf("NO\n");
else
printf("%d\n",Min);
}
return ;
}

hdu 1495 非常可乐 广搜的更多相关文章

  1. HDU ACM 1495 非常可乐(广搜BFS)

    非常可乐 Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/Other) Total Submissi ...

  2. BFS(倒水问题) HDU 1495 非常可乐

    题目传送门 /* BFS:倒水问题,当C是奇数时无解.一共有六种情况,只要条件符合就入队,我在当该状态vised时写了continue 结果找了半天才发现bug,泪流满面....(网上找份好看的题解都 ...

  3. HDU 1495 非常可乐 (只是转了个弯的广搜题)

    N - 非常可乐 =========================================================================================== ...

  4. hdu 1495 非常可乐 (广搜)

    题目链接 Problem Description 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶 ...

  5. HDU 1495 非常可乐 BFS

    题目大意:中文题不说了. 题目思路:我有同学用GCD数论写出来的代码很简洁,但是很抱歉,数论蒟蒻,我觉得比赛的时候我没办法推出.如果用BFS的话思路很简单的,就是6方向广搜,只不过稍微麻烦点.具体看代 ...

  6. HDU 1495 非常可乐(数论,BFS)

    非常可乐 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submi ...

  7. HDU 1495 非常可乐

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=103711#problem/M /*BFS简单题 链接地址: http://acm.hdu ...

  8. HDU 1495 非常可乐 BFS 搜索

    http://acm.hdu.edu.cn/showproblem.php?pid=1495 题目就不说了, 说说思路! 倒可乐 无非有6种情况: 1. S 向 M 倒 2. S 向 N 倒 3. N ...

  9. HDU 1495 非常可乐 bfs 难度:1

    http://acm.hdu.edu.cn/showproblem.php?pid=1495 第三个杯子的盛水量可由前两个杯子得到,而前两个杯子状态总数在100*100以内,穷举可实现 #includ ...

随机推荐

  1. (转)关于CoreData的一个工具Mogenerator的使用

    最近看到用CoreData时使用的工具Mogenerator,发现网上介绍其具体使用的不多,特此简单整理一下,关于CoreData这里就不具体说了,使用就用MagicalRecord,用起来真是太方便 ...

  2. [iOS基础控件 - 6.11.4] storyboard 的 Segue

    A.概念 storyboard中的跳转事件连线,都是一个UIStoryboardSegue对象(Segue)   来源控制器      触发控制器 目标控制器      跳转到的控制器     Seg ...

  3. 认识JavaScript的原型

    本来打算也写一个JavaScript学习笔记的系列,不过由于笔者不太想买大部头的js数据,和网上的资料也不少,所以js系列就打算写到了算了了. 要理解JavaScript就要理解其原型,首先我们先区分 ...

  4. 【JDBC】百万数据插入

    使用JDBC连接数据库时,如果插入的数据量大,一条一条地插入数据会变得非常缓慢.此时,我们需要用到预处理. 查阅Java开发文档,我们可以看到: 接口 PreparedStatement 表示预编译的 ...

  5. 学习php 韩顺平

    1.动态语言的发展史 最早使用cgi 学习 apache  全世界最流行的web服务器 php运行流程 → apache→php文件→数据库→php文件→浏览器 php底层语言是c语言 jsp底层语言 ...

  6. SQL Select count(*)和Count(1)的区别和执行方式及SQL性能优化

    SQL性能优化:http://www.cnblogs.com/CareySon/category/360333.html Select count(*)和Count(1)的区别和执行方式 在SQL S ...

  7. 让sublime text 3默认新建GBK文件

    想让sublime text支持显示或者保存中文,需要安装插件convertToUTF8,具体安装可以问度娘. 安装插件以后,想让保存的html文件支持中文,可以通过ctrl+shift+C来完成.但 ...

  8. 通过OAF实现RTF多语言

    职责: Oracle XML Publisher 管理员 -->主页 -->模板 -->创建模板 1.定义rtf模板时 在创建模板时,勾选可转换.      

  9. 推荐图书-《SQL Server 2008商业智能完美解决方案》

    内容简介 <SQL Server 2008商业智能完美解决方案>介绍如何使用Microsoft SQL Server 2008开发商业智能(BI)解决方案.<SQL Server 2 ...

  10. Git Cmd

    http://my.oschina.net/sunboy2050/blog/55749