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 非常可乐的更多相关文章

  1. hdoj 1495 非常可乐【bfs隐式图】

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

  2. HDOJ 1495 非常可乐 【BFS】

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

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

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

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

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

  5. HDU 1495 非常可乐

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

  6. HDU 1495 非常可乐 BFS 搜索

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

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

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

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

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

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

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1495 题目大意:只有两个杯子,它们的容量分别是N 毫升和M 毫升 可乐的体积为S (S<101) ...

随机推荐

  1. eclipse设置系统字体

    1. 打开eclipse-->Window-->Preferences-->General-->appearance-->Colors and Fonts, 点开后选择B ...

  2. GCOV 使用用例

      1.GCOV查看arm-linux代码覆盖率 一.           关于gcov工具 gcov伴随gcc 发布.gcc编译加入-fprofile-arcs -ftest-coverage 参数 ...

  3. 化繁为简,无需后端。巧用Yql+rss,搭建我的个人网站

    [本文含有大量的心理描写,没耐心的看官直接跳转到末尾即可] 前言: 最近做好了个人网站.很多人都喜欢用WordPress弄一个自己的博客之类的,但其实我觉得没这个必要,Lofter的功能.界面神马的于 ...

  4. ubuntu 安装 flash player

    ubuntu 软件中心里的 flash , 虽说写的支持 chrome , 但安装总不管用 可运行以下两个命令, 再重启 chrome 浏览器 (注意,一定要把打开的浏览器全部关闭, 再打开才可以) ...

  5. Android Studio 使用GitHub

    Android Studio 使用GitHub 1.安装配置 默认大家都已经安装了git软件,参考下图进行git与as关联 配置git  设置GitHub用户信息  填写完用户名,密码后可以点击Tes ...

  6. Ajax+Node分页

    思路: ajax分页:1.服务器server.js,写布局;2.写接口文档(不管客户端,只写服务器端接口)3.写客户端,绑定数据,分页,优化点击过了,就不再请求:4.给每个li绑定点击事件,跳转详情页 ...

  7. wpf Content数据绑定StringFormat起作用的原理和解决(转)

    1.简单示例: <Window x:Class="WpfOne.Bind.Bind6" xmlns="http://schemas.microsoft.com/wi ...

  8. angular.js学习手册(二)

    如何使用angularjs? 各个 angular.js 版本下载: https://github.com/angular/angular.js/releases 下载完之后,在你需要使用angula ...

  9. Best Time to Buy and Sell sock II

    Say you have an array for which the ith element is the price of a given stock on day i. Design an al ...

  10. TalkingData游戏版本在Cocos2d-x 3.2使用

    最近一直忙别的方面的事情,没有太关注cocos2dx的发展情况,竟然已经更新到了3.2的版本,总的来说3.2比较3.0在使用上会有一些路径的变成,包括ios的引用路径和android上的build的p ...