HDOJ1495(倒水BFS)
非常可乐
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 10442 Accepted Submission(s): 4193
#include <cstdio>
#include <cstring>
#include <queue>
#include <algorithm>
using namespace std;
const int MAXN=;
struct Node{
int s,n,m;
int step;
Node(){}
Node(int cs,int cn,int cm,int cstep)
{
s=cs;
n=cn;
m=cm;
step=cstep;
}
};
int vis[MAXN][MAXN][MAXN];
int S,N,M;
void bfs()
{
queue<Node> que;
que.push(Node(S,,,));
vis[S][N][M]=;
while(!que.empty())
{
Node now=que.front();que.pop();
if((now.s==&&now.n==now.m)||(now.n==&&now.s==now.m)||(now.m==&&now.s==now.n))
{
printf("%d\n",now.step);
return ;
}
int nes,nen,nem,mn;
mn=min(N-now.n,now.s);
nes=now.s-mn;
nen=now.n+mn;
nem=now.m;
if(!vis[nes][nen][nem])
{
vis[nes][nen][nem]=;
que.push(Node(nes,nen,nem,now.step+));
} mn=min(M-now.m,now.s);
nes=now.s-mn;
nen=now.n;
nem=now.m+mn;
if(!vis[nes][nen][nem])
{
vis[nes][nen][nem]=;
que.push(Node(nes,nen,nem,now.step+));
} mn=min(S-now.s,now.n);
nes=now.s+mn;
nen=now.n-mn;
nem=now.m;
if(!vis[nes][nen][nem])
{
vis[nes][nen][nem]=;
que.push(Node(nes,nen,nem,now.step+));
} mn=min(M-now.m,now.n);
nes=now.s;
nen=now.n-mn;
nem=now.m+mn;
if(!vis[nes][nen][nem])
{
vis[nes][nen][nem]=;
que.push(Node(nes,nen,nem,now.step+));
} mn=min(S-now.s,now.m);
nes=now.s+mn;
nen=now.n;
nem=now.m-mn;
if(!vis[nes][nen][nem])
{
vis[nes][nen][nem]=;
que.push(Node(nes,nen,nem,now.step+));
} mn=min(N-now.n,now.m);
nes=now.s;
nen=now.n+mn;
nem=now.m-mn;
if(!vis[nes][nen][nem])
{
vis[nes][nen][nem]=;
que.push(Node(nes,nen,nem,now.step+));
}
}
printf("NO\n");
}
int main()
{
while(scanf("%d%d%d",&S,&N,&M)!=EOF&&S&&N&&M)
{
memset(vis,,sizeof(vis));
if(S%!=)
{
printf("NO\n");
}
else bfs();
}
return ;
}
HDOJ1495(倒水BFS)的更多相关文章
- hdu1495 倒水bfs
题目链接:http://icpc.njust.edu.cn/Problem/Hdu/1495/ 题意:给定三个杯子S,M,N,满足S=M+N,现在要求用最短的次数将S杯中的饮倒平分到两个杯子中.我们首 ...
- poj3414Pots(倒水BFS)
Pots Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 13231 Accepted: 5553 Special J ...
- hdoj1495简单BFS
#include <stdio.h> #include <string.h> #include <math.h> #include <algorithm> ...
- POJ 3414 Pots【bfs模拟倒水问题】
链接: http://poj.org/problem?id=3414 http://acm.hust.edu.cn/vjudge/contest/view.action?cid=22009#probl ...
- codevs1226倒水问题(Bfs)
/* 首先建立模型 可以看成是三个水杯 第三个无穷大 (这里看成是201足够了) 最少步数 想到Bfs 维护队列里的状态:要有个步数 还要有v :此时刻三个杯子有多少水 然后倒水:因为没有刻度 所以有 ...
- HDU 1495 非常可乐(BFS倒水问题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1495 题目大意:只有两个杯子,它们的容量分别是N 毫升和M 毫升 可乐的体积为S (S<101) ...
- HDU 1495 非常可乐【BFS/倒水问题】
非常可乐 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submissi ...
- CodeVS 1226 倒水问题【DFS/BFS】
题目描述 Description 有两个无刻度标志的水壶,分别可装 x 升和 y 升 ( x,y 为整数且均不大于 100 )的水.设另有一水 缸,可用来向水壶灌水或接从水壶中倒出的水, 两水壶间,水 ...
- POJ - 3414 Pots BFS(著名倒水问题升级版)
Pots You are given two pots, having the volume of A and B liters respectively. The following operati ...
随机推荐
- 【python】-- Socket接收大数据
Socket接收大数据 上一篇博客中的简单ssh实例,就是说当服务器发送至客户端的数据,大于客户端设置的数据,则就会把数据服务端发过来的数据剩余数据存在IO缓冲区中,这样就会造成我们想要获取数据的完整 ...
- Java语言实现简单FTP软件------>本地文件管理模块的实现(九)
首先看一下界面: 1.本地文件列表的显示功能 将本地的当前目录下所有文件显示出来,并显示文件的属性包括文件名.大小.日期.通过javax.swing.JTable()来显示具体的数据.更改当前文件目录 ...
- PAT 1055. 集体照 (25)
拍集体照时队形很重要,这里对给定的N个人K排的队形设计排队规则如下: 每排人数为N/K(向下取整),多出来的人全部站在最后一排: 后排所有人的个子都不比前排任何人矮: 每排中最高者站中间(中间位置为m ...
- LeetCode:区域和检索【303】
LeetCode:区域和检索[303] 题目描述 给定一个整数数组 nums,求出数组从索引 i 到 j (i ≤ j) 范围内元素的总和,包含 i, j 两点. 示例: 给定 nums = [ ...
- JavaWeb:前端开发基础
JavaWeb:前端开发基础 内联元素和块级元素 说明: 联元素和块级元素都是html中的范畴,块元素和内联元素的主要差异是块元素是从新的一行开始.而内联元素一般显示在一行上.但是可以通过css的di ...
- ios 表情编码
感受 :可以做自定义键盘时候用 很方便 还可以在textView里面看到 用户体验很好~ 但是要和服务器管理员协商好,做好解析转码工作,不然网页上是不显示的. ios表情编码 在ios中可以使用可爱 ...
- [原创]java WEB学习笔记06:ServletContext接口
本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当 ...
- 更改ubuntu主机名称
vim /etc/hostname 将root更改为admin vim /etc/passwd
- 英语发音规则---ea字母组合发音规律
英语发音规则---ea字母组合发音规律 一.总结 一句话总结:字母组合ea的发音规律,在学习字母组合在单词中的发音规律以前,一定要熟练撑握什么是开音节,什么是闭音节,否则你就不撑握这些发音规律. ea ...
- Linux课程---10、权限管理(权限有哪几种)
Linux课程---10.权限管理(权限有哪几种) 一.总结 一句话总结: r 读 w 写 x 执行 1.drwxr-x--- 2 root root 4096 Jan 20 19:39 mnt ...