hdu 1495 非常可乐(BFS)
题目链接: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)相关推荐
- hdu 1495 非常可乐 (bfs)
非常可乐 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- HDU 1495 非常可乐(BFS||数论)
非常可乐 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- hdu 1495非常可乐 BFS
文章目录 AC代码 TLE ???为啥啊?不知道哪里不对,导致超时 对比发现,超时和输出使用cin等 无关,貌似是pour函数采用传参的方法就会超时,需要使用全局变量才不会超时 = = ... AC代 ...
- HDU - 1495 非常可乐(BFS,数学)
HDU - 1495 非常可乐(BFS,数学) 巨佬的数学解法 #include<iostream> using namespace std; int gcd(int a,int b) { ...
- HDU 1495 非常可乐
- HDU 1495 - 非常可乐 Problem Description 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和 ...
- HDU 1495 非常可乐(数论,BFS)
非常可乐 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submi ...
- Hdu 1495 非常可乐、BFS、模拟:【题解】
非常可乐 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Descri ...
- HDU 1495 非常可乐
非常可乐 http://acm.hdu.edu.cn/showproblem.php?pid=1495 Time Limit: 2000/1000 MS (Java/Others) Memory ...
- HDU 1495(非常可乐)
Problem Description 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且 ...
最新文章
- html 表格过滤功能,简单的带排序和过滤功能的jQuery表格插件
- MyBatis映射文件(一)
- devcon的测试 尝试使用devcon命令重置Intel Realsense D435摄像头 USB
- 《极乐迪斯科》:醉鬼神探的深邃人生
- HBASE ERROR: Table already exists: FileTable! list时候却查不到表
- python异步io 队列_python 学习笔记九 队列,异步IO
- 光谱 波长_【第三课】红外光谱仪及其联用技术
- redis数据持久化到mysql_redis 数据持久化的几种方式
- 用python偷偷给班级群女同学的颜值进行排名,排最后的 说开学要打爆我
- B/S开发框架Web安全问题及防范规范之挂马和WebShell
- CSS学习笔记--定位
- postgresql9.6 的安装
- 缓存击穿、缓存穿透、缓存雪崩简单总结
- 线性支持向量机与软间隔最大化
- 2022美赛LSTM
- 实战 用Python放一场浪漫的烟花秀
- 用C语言短除法求最大公因数用,用短除法求最大公因数
- 如何选择关键词以及关键词分析优化
- wsl2安装及一些使用技巧
- python:等间距分割pdf文件
热门文章
- C#中的委托,匿名方法和Lambda表达式
- 我理解的【旁路代理】
- 深入浅出PHP&MySQL(影印版)
- python转载[编码问题]
- C# VC HTTP POST GET(转)
- jQuery 1.3 for Asp.Net、 CSLA.Net 3.6 for Windows 及 MOSS/WSS 一步一步从入门到精通三个系列的目录...
- BAC--Downtime 凌晨时段设定
- python基础(十七)
- Linux (CentOS)增加删除用户
- ASP.NET中 DropDownList+DetailsView(详细视图)的使用前台绑定