hdu1495非常可乐(BFS)
来源:互联网 发布:景观设计软件有哪些 编辑:程序博客网 时间:2024/06/09 15:49
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1495
第一次做这种搜索,看了别人了博客,说是6种状态,没想到BFS还可以这么用。^_^
代码:
#include <cstdio>#include <cstring>#include <queue>using namespace std;const int maxn = 105;int a,b,c;struct node{ int a,b,c; int s;};int v[maxn][maxn][maxn];void bfs(){ memset(v,0,sizeof(v)); queue<node> q; node f,t; f.a = a; f.b = 0; f.c = 0; f.s = 0; q.push(f); while(!q.empty()) { node h = q.front(); q.pop(); if((h.a == a / 2 && h.b == a / 2) ||(h.a == a / 2 && h.c == a / 2) || (h.b == a / 2 && h.c == a / 2)) { printf("%d\n",h.s); return ; } if(h.a) { if(h.a >= b - h.b) { t.a = h.a - (b - h.b); t.b = b; t.c = h.c; t.s = h.s + 1; } else { t.a = 0; t.b = h.a + h.b; t.c = h.c; t.s = h.s + 1; } if(!v[t.a][t.b][t.c]) { q.push(t); v[t.a][t.b][t.c] = 1; } } if(h.a) { if(h.a >= c - h.c) { t.a = h.a - (c - h.c); t.b = h.b; t.c = c; t.s = h.s + 1; } else { t.a = 0; t.b = h.b; t.c = h.c + h.a; t.s = h.s + 1; } if(!v[t.a][t.b][t.c]) { q.push(t); v[t.a][t.b][t.c] = 1; } } if(h.b) { if(h.b >= a - h.a) { t.a = a; t.b = h.b - (a - h.a); t.c = h.c; t.s = h.s + 1; } else { t.a = h.a + h.b; t.b = 0; t.c = h.c; t.s = h.s + 1; } if(!v[t.a][t.b][t.c]) { q.push(t); v[t.a][t.b][t.c] = 1; } } if(h.b) { if(h.b >= c - h.c) { t.a = h.a; t.b = h.b - (c - h.c); t.c = c; t.s = h.s + 1; } else { t.a = h.a; t.b = 0; t.c = h.c + h.b; t.s = h.s + 1; } if(!v[t.a][t.b][t.c]) { q.push(t); v[t.a][t.b][t.c] = 1; } } if(h.c) { if(h.c >= a - h.a) { t.a = a; t.b = h.b; t.c = h.c - (a - h.a); t.s = h.s + 1; } else { t.a = h.a + h.c; t.b = h.b; t.c = 0; t.s = h.s + 1; } if(!v[t.a][t.b][t.c]) { q.push(t); v[t.a][t.b][t.c] = 1; } } if(h.c) { if(h.c >= b - h.b) { t.a = h.a; t.b = b; t.c = h.c - (b - h.b); t.s = h.s + 1; } else { t.a = h.a; t.b = h.b + h.c; t.c = 0; t.s = h.s + 1; } if(!v[t.a][t.b][t.c]) { q.push(t); v[t.a][t.b][t.c] = 1; } } } printf("NO\n"); return ;}int main(){ while(~scanf("%d%d%d",&a,&b,&c),a + b + c) { if(a & 1) printf("NO\n"); else bfs(); }}
0 0
- hdu1495 非常可乐(bfs)
- HDU1495 非常可乐(BFS)
- hdu1495非常可乐(BFS)
- HDU1495:非常可乐(BFS)
- HDU1495:非常可乐(BFS)
- HDU1495 非常可乐 【BFS】
- HDU1495-非常可乐-BFS
- hdu1495非常可乐bfs
- hdu1495 非常可乐--BFS
- hdu1495 非常可乐【bfs】
- hdu1495非常可乐(bfs)
- hdu1495 非常可乐(简单BFS)
- hdu1495——非常可乐(BFS)
- M - 非常可乐HDU1495 BFS
- hdu1495 非常可乐 bfs基础
- HDU1495 非常可乐 BFS+模拟
- HDU1495 非常可乐(模拟,广搜BFS)
- HDU1495 非常可乐 —— BFS + 模拟
- 在线画时序图的工具
- easyUi 添加
- hadoop hive安装,并使用mysql数据库
- Android的View绘制流程
- turtlebot(hydro)学习笔记七:ASUS Xtion pro live替换kinect
- hdu1495非常可乐(BFS)
- mysql tcp 4层负载
- 表连接 join和(+)、union和uion all
- http-server 超轻量级web服务器
- easyUi --修改
- 阻塞、非阻塞、异步、同步以及select/poll和epoll
- CodeForces - 96B Lucky Numbers (easy)
- 轻量级Java EE企业应用实战 学习笔记(一)第一章
- sort与uniq