题目链接:hdu1495

共有6种操作,x-->y,x-->z,y-->x,y-->z,z-->x,z-->y

#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<queue>
#define MAXN 105
using namespace std;
int v[MAXN][MAXN][MAXN];
int a,b,c,flag;
struct node
{int x,y,z;int step;
};
bool judge(node k)
{if( (k.x == k.y && k.z == 0) || (k.x == k.z && k.y == 0) || (k.z == k.y && k.x == 0) )return 1;return 0;
}
void bfs()
{queue <node> q;node s,temp;s.x = a;s.y = 0;s.z = 0;s.step = 0;v[s.x][s.y][s.z] = 1;//标记该状态已存在过q.push(s);while(!q.empty()){temp = q.front();q.pop();int num;if(judge(temp)){printf("%d\n",temp.step);flag = 1;return ;}if(temp.x > 0){if(temp.y < b)//x-->y{num = b - temp.y;//表示b中还差多少装满s.z = temp.z;s.step = temp.step + 1;if(temp.x > num){s.x = temp.x - num;s.y = b;}else{s.x = 0;s.y = temp.x + temp.y;}if(!v[s.x][s.y][s.z]){v[s.x][s.y][s.z] = 1;q.push(s);}}if(temp.z < c)//x-->z{num = c - temp.z;s.y = temp.y;s.step = temp.step + 1;if(temp.x > num){s.x = temp.x - num;s.z = c;}else{s.x = 0;s.z = temp.x + temp.z;}if(!v[s.x][s.y][s.z]){v[s.x][s.y][s.z] = 1;q.push(s);}}}if(temp.y > 0){if(temp.x < a)//y-->x{num = a - temp.x;s.z = temp.z;s.step = temp.step + 1;if(temp.y > num){s.y = temp.y - num;s.x = a;}else{s.y = 0;s.x = temp.y + temp.x;}if(!v[s.x][s.y][s.z]){v[s.x][s.y][s.z] = 1;q.push(s);}}if(temp.z < c)//y-->z{num = c - temp.z;s.x = temp.x;s.step = temp.step + 1;if(temp.y > num){s.y = temp.y - num;s.z = c;}else{s.y = 0;s.z = temp.y + temp.z;}if(!v[s.x][s.y][s.z]){v[s.x][s.y][s.z] = 1;q.push(s);}}}if(temp.z > 0){if(temp.x < a)//z-->x{num = a - temp.x;s.y = temp.y;s.step = temp.step + 1;if(temp.z > num){s.z = temp.z - num;s.x = a;}else{s.z = 0;s.x = temp.x + temp.z;}if(!v[s.x][s.y][s.z]){v[s.x][s.y][s.z] = 1;q.push(s);}}if(temp.y < b)//z-->y{num = b - temp.y;s.x = temp.x;s.step = temp.step + 1;if(temp.z > num){s.z = temp.z - num;s.y = b;}else{s.z = 0;s.y = temp.y + temp.z;}if(!v[s.x][s.y][s.z]){v[s.x][s.y][s.z] = 1;q.push(s);}}}}
}
int main()
{while(scanf("%d%d%d",&a,&b,&c) && (a + b + c)){memset(v,0,sizeof(v));flag = 0;bfs();if(!flag) printf("NO\n");}return 0;
}

转载于:https://www.cnblogs.com/dyllove98/p/3212004.html

hdu 1495 非常可乐(BFS)相关推荐

  1. hdu 1495 非常可乐 (bfs)

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

  2. HDU 1495 非常可乐(BFS||数论)

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

  3. hdu 1495非常可乐 BFS

    文章目录 AC代码 TLE ???为啥啊?不知道哪里不对,导致超时 对比发现,超时和输出使用cin等 无关,貌似是pour函数采用传参的方法就会超时,需要使用全局变量才不会超时 = = ... AC代 ...

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

    HDU - 1495 非常可乐(BFS,数学) 巨佬的数学解法 #include<iostream> using namespace std; int gcd(int a,int b) { ...

  5. HDU 1495 非常可乐

    - HDU 1495 - 非常可乐 Problem Description 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和 ...

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

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

  7. Hdu 1495 非常可乐、BFS、模拟:【题解】

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

  8. HDU 1495 非常可乐

    非常可乐 http://acm.hdu.edu.cn/showproblem.php?pid=1495 Time Limit: 2000/1000 MS (Java/Others)    Memory ...

  9. HDU 1495(非常可乐)

    Problem Description 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且 ...

最新文章

  1. html 表格过滤功能,简单的带排序和过滤功能的jQuery表格插件
  2. MyBatis映射文件(一)
  3. devcon的测试 尝试使用devcon命令重置Intel Realsense D435摄像头 USB
  4. 《极乐迪斯科》:醉鬼神探的深邃人生
  5. HBASE ERROR: Table already exists: FileTable! list时候却查不到表
  6. python异步io 队列_python 学习笔记九 队列,异步IO
  7. 光谱 波长_【第三课】红外光谱仪及其联用技术
  8. redis数据持久化到mysql_redis 数据持久化的几种方式
  9. 用python偷偷给班级群女同学的颜值进行排名,排最后的 说开学要打爆我
  10. B/S开发框架Web安全问题及防范规范之挂马和WebShell
  11. CSS学习笔记--定位
  12. postgresql9.6 的安装
  13. 缓存击穿、缓存穿透、缓存雪崩简单总结
  14. 线性支持向量机与软间隔最大化
  15. 2022美赛LSTM
  16. 实战 用Python放一场浪漫的烟花秀
  17. 用C语言短除法求最大公因数用,用短除法求最大公因数
  18. 如何选择关键词以及关键词分析优化
  19. wsl2安装及一些使用技巧
  20. python:等间距分割pdf文件

热门文章

  1. C#中的委托,匿名方法和Lambda表达式
  2. 我理解的【旁路代理】
  3. 深入浅出PHP&MySQL(影印版)
  4. python转载[编码问题]
  5. C# VC HTTP POST GET(转)
  6. jQuery 1.3 for Asp.Net、 CSLA.Net 3.6 for Windows 及 MOSS/WSS 一步一步从入门到精通三个系列的目录...
  7. BAC--Downtime 凌晨时段设定
  8. python基础(十七)
  9. Linux (CentOS)增加删除用户
  10. ASP.NET中 DropDownList+DetailsView(详细视图)的使用前台绑定