【HDOJ】1495 非常可乐
bfs.
#include <iostream>
#include <queue>
#include <cstdio>
#include <cstring>
using namespace std; #define MAXN 105 bool visit[MAXN][MAXN][MAXN]; typedef struct node_t {
int x[];
int t;
node_t() {}
node_t(int xx, int yy, int ss, int tt) {
x[] = xx;
x[] = yy;
x[] = ss;
t = tt;
}
} node_t; int s, m, n; bool check(node_t d) {
int half = s>>; if ((d.x[]==half) && (d.x[]== || d.x[]==)) return true;
if ((d.x[]==) && (d.x[]==half)) return true; return false;
} int bfs() {
if (s & )
return -;
queue<node_t> Q;
int x[] = {m, n, s};
int i, j, k, tmp; memset(visit, false, sizeof(visit));
visit[][][s] = true;
Q.push(node_t(,,s,)); while (!Q.empty()) {
node_t d = Q.front();
Q.pop();
for (i=; i<; ++i) {
for (j=; j<; ++j) {
if (i == j)
continue;
node_t dd = d;
// from i to j
tmp = x[j] - dd.x[j];
if (tmp > ) {
if (dd.x[i] > tmp) {
dd.x[j] = x[j];
dd.x[i] -= tmp;
} else {
dd.x[j] += dd.x[i];
dd.x[i] = ;
}
}
if (visit[dd.x[]][dd.x[]][dd.x[]]) {
continue;
}
++dd.t;
visit[dd.x[]][dd.x[]][dd.x[]] = true;
if ( check(dd) )
return dd.t;
Q.push(dd);
}
}
} return -;
} int main() { #ifndef ONLINE_JUDGE
freopen("data.in", "r", stdin);
#endif while (scanf("%d%d%d",&s,&m,&n)!=EOF && (s||m||n)) {
int ans = bfs();
if (ans > )
printf("%d\n", ans);
else
printf("NO\n");
} return ;
}
【HDOJ】1495 非常可乐的更多相关文章
- hdoj 1495 非常可乐【bfs隐式图】
非常可乐 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submis ...
- HDOJ 1495 非常可乐 【BFS】
非常可乐 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- 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 非常可乐
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 ACM 1495 非常可乐(广搜BFS)
非常可乐 Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other) Total Submissi ...
- HDU 1495 非常可乐 bfs 难度:1
http://acm.hdu.edu.cn/showproblem.php?pid=1495 第三个杯子的盛水量可由前两个杯子得到,而前两个杯子状态总数在100*100以内,穷举可实现 #includ ...
- HDU 1495 非常可乐(BFS倒水问题)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1495 题目大意:只有两个杯子,它们的容量分别是N 毫升和M 毫升 可乐的体积为S (S<101) ...
随机推荐
- 解决Xcode6.0.1编译Unity3Dproject报错
错误信息大概例如以下 Undefined symbols for architecture i386: "_clock$UNIX2003",.....等 大概就是引用了一个链接库出 ...
- Linux的进程优先级-邹立巍
http://liwei.life/2016/04/07/linux%E7%9A%84%E8%BF%9B%E7%A8%8B%E4%BC%98%E5%85%88%E7%BA%A7/
- Qt 学习之路 :Qt 模块简介
Qt 5 与 Qt 4 最大的一个区别之一是底层架构有了修改.Qt 5 引入了模块化的概念,将众多功能细分到几个模块之中.Qt 4 也有模块的概念,但是是一种很粗的划分,而 Qt 5 则更加细化.本节 ...
- Android进阶笔记02:Android 网络请求库的比较及实战(二)
一.Volley 既然在android2.2之后不建议使用HttpClient,那么有没有一个库是android2.2及以下版本使用HttpClient,而android2.3及以上版本 ...
- Linux开发工具之gdb(下)
三.gdb调试(下) 01.查看运行时数据 print - 查看变量值 ptype - 查看类型 print array - 查看数组 print *array@len - 查看动态内存 print ...
- 原生js方法document.getElementsByClassName在ie8及其以下的兼容性问题
document.getElementsByClassName在ie8及其以下浏览器的兼容性问题,在ie8及其以下浏览器中不能使用,针对这个问题,下面给出详细的解决方法,感兴趣的朋友可以参考下 ...
- Phonegap 极光推送api 服务器端推送代码
.net 版本 极光推送 后台接口 HttpWebResponseUtility类 using System; using System.Collections.Generic; using Syst ...
- HTML5 FileAPI读取实例---(一)
在HTML5中,提供了一个关于文件操作的API,通过这个API,对于从web页面上访问本地文件系统的相关处理变得十分简单.到目前为止只有部分浏览器对它提供支持. 1.FileList对象和File对象 ...
- Java安全发布的理解
看<Java并发编程实战>遇到如下问题 代码: /** * Created by yesiming on 16/11/11. */public class Holder { private ...
- android 9Path图片的使用
Android UI设计时,经常会使用图片作为背景,比如给按钮设置背景图片时,图片会默认缩放来适应整个按钮.但是有时这种缩放效果并不是我们所需求的.而我们只是希望缩放图片的特定位置,以此来保证按钮的视 ...