HDOJ 1495非常可乐
非常可乐原题链接
题目描述:
思路:
当可乐总量为奇数时,不可能均分,直接输出结果;将i被子倒入j杯中时,分两种情况,一种是能倒完,一种还有剩余
#include <iostream>
#include <queue>
#include <string.h>
using namespace std;int N,M,S;
struct node
{int num[3];int steps;//次数
}now,nex;int vis[101][101][101];
int rq[3];//最大容量bool check(node x)//检查
{if((x.num[0] == x.num[1] && x.num[2] == 0 )||(x.num[0] == x.num[2] && x.num[1] == 0)||(x.num[1] == x.num[2] && x.num[0] == 0)){return true;}else return false;
}void bfs()
{queue<node> Q;memset(vis,0,sizeof(vis));now.num[0] = S;now.num[1] = 0;now.num[2] = 0;vis[S][0][0] = 1;//记录当前的情况已经访问了now.steps = 0;//记录次数Q.push(now);while(!Q.empty()){now = Q.front();Q.pop();if(check(now)){printf("%d\n",now.steps);return;}for(int i = 0; i < 3; i++){for(int j = 0; j < 3; j++){if(i == j) continue;if(now.num[i] <= rq[j] - now.num[j])//能倒完{nex.num[j] = now.num[j] + now.num[i];nex.num[i] = 0;}else//不能倒完{nex.num[i] = now.num[i] - (rq[j] - now.num[j]);nex.num[j] = rq[j];}//另外一个不变for(int k = 0; k < 3; k++){if(k == i || k == j){continue;}nex.num[k] = now.num[k];}//步数加一,注意别写成now.steps++!!!nex.steps = now.steps + 1;if(vis[nex.num[0]][nex.num[1]][nex.num[2]]==0){vis[nex.num[0]][nex.num[1]][nex.num[2]]=1;Q.push(nex);}}}}printf("NO\n");return;
}
int main()
{while(scanf("%d%d%d",&S,&N,&M)!=EOF && S!=0 && N!=0 && M!=0){if(S / 2 == 1){printf("NO\n");}else{rq[0] = S;rq[1] = N;rq[2] = M;bfs();}}return 0;
}
HDOJ 1495非常可乐相关推荐
- HDU 1495 非常可乐
- HDU 1495 - 非常可乐 Problem Description 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和 ...
- HDU - 1495 非常可乐(BFS,数学)
HDU - 1495 非常可乐(BFS,数学) 巨佬的数学解法 #include<iostream> using namespace std; int gcd(int a,int b) { ...
- HDU 1495 非常可乐
非常可乐 http://acm.hdu.edu.cn/showproblem.php?pid=1495 Time Limit: 2000/1000 MS (Java/Others) Memory ...
- HDU - 1495 - 非常可乐
先上题目: 非常可乐 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- 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(非常可乐)
Problem Description 大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为.因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且 ...
- 杭电1495非常可乐
非常可乐 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 ...
最新文章
- 安卓按键精灵_[按键精灵教程]学了这个你也能做出稳定的脚本
- 数据中台推荐系统入门(三):推荐系统的评测指标
- 王者荣耀用什么开发引擎做的?
- .net Core 相关问题
- javaweb入门笔记(4)-request和response
- QT + OpenCV + MinGW 在windows下配置开发环境
- 【bfs】WJ的逃离
- c#服务器后台搭建_【环境搭建】Docker简明安装教程
- c语言题目1120,九度题目1120:全排列
- ubuntu或者fedora下编译淘宝tair key-value-db的开源内存数据库
- Android Studio用不了jar
- React-leaflet在ant-design pro中的基本使用
- 凭证反过账 金蝶k3_金蝶K3总账凭证过账等处理方式
- 无法打开Internet站点
- XCTF新手练习区 writeup
- 看完《硅谷之谜》,马上登机
- Linux从一般用户切换到root用户
- android温湿度传感节点指令源代码,Arduino+DHT11+OLED显示温湿度信息(附详细文档+源码)...
- 面试问到关于数据库的问题,看了这篇够用了!
- 【实验四 循环结构】7-2 sdut-C语言实验—两个数比较