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 ...
随机推荐
- 最新的支持DELPHI XE6的开发框架
支持负载均衡集群的中间件 主界面 插件管理 角色与权限 用户与权限
- [iOS UI进阶 - 6.0] CALayer
A.基本知识 1.需要掌握的 CALayer的基本属性 CALayer和UIView的关系 position和anchorPoint的作用 2.概念 在iOS中,你能看得见摸得着的东西基本上都是U ...
- javascript中对象的每个实例都具有的属性和方法
- CSS3之背景剪裁Background-clip
CSS3之背景剪裁Background-clip是CSS3中新添加的内容.这个属性还是比较简单的,主要分五个属性值:border.padding.content.no-clip和text.下面将针对这 ...
- 剑指OFFER之跳台阶(九度OJ1388)
题目描述: 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 输入: 输入可能包含多个测试样例,对于每个测试案例, 输入包括一个整数n(1<=n< ...
- C#客户端链接网页需要用到的WebClient
WebClient 类提供向 URI 标识的任何本地.Intranet 或 Internet 资源发送数据以及从这些资源接收数据的公共方法. WebClient 类使用 WebRequest 类提供对 ...
- #定位系统性能瓶颈# strace & ltrace
strace和ltrace分别相应的是系统调用和库函数调用, 系统调用实际上就是指最底层的一个调用,在linux程序设计里面就是底层调用的意思,面向的是硬件. 而库函数调用则面向的是应用开发的.相当于 ...
- 如何将松散的dll打包进需要发布的exe
我们需要发布的exe文件很多时候都可能会依赖于一堆松散的dll,如果想在发布的时候只提供exe文件,而不想把一大堆dll一起放在和exe同一个文件夹下,是有方法的,该方法由CLR via C#作者提出 ...
- android142 360 分页加载
dao: package com.itheima.mobileguard.db.dao; import java.util.ArrayList; import java.util.List; impo ...
- npm获取配置,设置代理
npm获取配置有6种方式,优先级由高到底. 命令行参数. --proxy http://server:port即将proxy的值设为http://server:port. 环境变量. 以npm_con ...