hdu 1495 非常可乐 广搜
#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 非常可乐 广搜的更多相关文章
- HDU ACM 1495 非常可乐(广搜BFS)
非常可乐 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submissi ...
- BFS(倒水问题) HDU 1495 非常可乐
题目传送门 /* BFS:倒水问题,当C是奇数时无解.一共有六种情况,只要条件符合就入队,我在当该状态vised时写了continue 结果找了半天才发现bug,泪流满面....(网上找份好看的题解都 ...
- HDU 1495 非常可乐 (只是转了个弯的广搜题)
N - 非常可乐 =========================================================================================== ...
- hdu 1495 非常可乐 (广搜)
题目链接 Problem Description 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶 ...
- HDU 1495 非常可乐 BFS
题目大意:中文题不说了. 题目思路:我有同学用GCD数论写出来的代码很简洁,但是很抱歉,数论蒟蒻,我觉得比赛的时候我没办法推出.如果用BFS的话思路很简单的,就是6方向广搜,只不过稍微麻烦点.具体看代 ...
- HDU 1495 非常可乐(数论,BFS)
非常可乐 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- HDU 1495 非常可乐
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=103711#problem/M /*BFS简单题 链接地址: http://acm.hdu ...
- HDU 1495 非常可乐 BFS 搜索
http://acm.hdu.edu.cn/showproblem.php?pid=1495 题目就不说了, 说说思路! 倒可乐 无非有6种情况: 1. S 向 M 倒 2. S 向 N 倒 3. N ...
- HDU 1495 非常可乐 bfs 难度:1
http://acm.hdu.edu.cn/showproblem.php?pid=1495 第三个杯子的盛水量可由前两个杯子得到,而前两个杯子状态总数在100*100以内,穷举可实现 #includ ...
随机推荐
- 轻松学习 red5 教程 像视频一样很详细还有代码直接可Copy
转载自:http://blog.csdn.net/hongdianking/archive/2009/11/12/4804339.aspx 最近要做一个流媒体服务器,在网上逗留了好久决定选择 red5 ...
- OOP 6大基本原则
1.开闭原则: 对扩展开发.对修改关闭. 2.里氏替换原则:子类替换父类(可以用父类对象的任何地方都可以用子类对象代替) 3.依赖倒置原则:程序要依赖于抽象接口,不要依赖于具体实现.简单的说就是要求对 ...
- transition:all 0.5s linear;进度条动画效果 制作原理
Html: <span class="progress"><b ><i></i></b><em>50< ...
- MVC神韵---你想在哪解脱!(十二)
追加一条电影信息 运行应用程序,在浏览器中输入“http://localhost:xx/Movies/Create”,在表单中输入一条电影信息,然后点击追加按钮,如图所示. 点击追加按钮进行提交,表单 ...
- when not exists 用法
USE [ChangHong_612]GO/****** Object: StoredProcedure [dbo].[st_MES_UpdateInspectResult] Script Date: ...
- angurlajs 如何绑定Jquery
//绑定Jqueryfunction bindJQuery() { // bind to jQuery if present; jQuery = window.jQuery;//获取windows 的 ...
- request,response,session
1.request.getParameter("key")接受的是来自客户登陆端的数据,接受的是post或get方式传送的value. 2.请求的默认字符集是ISO-8859-1, ...
- 让EditText不能自动获取焦点
在activity中放置了1个或1个以上的EditText,进入该activity的时候第一个EditText会接收焦点,我希望里面所有的EditText默认是不接收焦点的,该怎么做呢? 方法: 在第 ...
- Linux在向磁盘新建文件的时候在系统层面的四步操作
----------- 1.存储文件属性.内核先找到一个空的i节点,并把文件属性信息记录其中. 2.存储数据.先计算要多少个磁盘块,在内核自由块列表找到合适数量的磁盘块,并把数据从内核的缓冲区依次 ...
- Delphi 多文件拖放获取路径示例
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, ...