Date:2022.02.15
题意:
大家一定觉的运动以后喝可乐是一件很惬意的事情,但是 seeyou 却不这么认为。
因为每次当 seeyou 买了可乐以后,阿牛就要求和 seeyou 一起分享这一瓶可乐,而且一定要喝的和 seeyou 一样多。
但 seeyou 的手中只有两个杯子,它们的容量分别是 N 毫升和 M 毫升。
可乐的体积为 S (S<101)毫升 (正好装满一瓶) ,它们三个之间可以相互倒可乐 (都是没有刻度的,且 S=N+M,101>S>0,N>0,M>0) 。
聪明的 ACMER 你们说他们能平分吗?
如果能请输出倒可乐的最少的次数,如果不能输出 NO。
输入格式
输入包含多组测试数据。
每组数据一行,三个整数 S,N,M。
当输入一行为 0 0 0 时,表示输入结束。
输出格式
每组数据输出一行结果,如果能够平分,则输出倒可乐的最少的次数,否则输出 NO。
数据范围
S=N+M,101>S>0,N>0,M>0)
输入样例:
7 4 3
4 1 3
0 0 0
输出样例:
NO
3

思路:能平分的前提是毫升数为偶数。其次,每次倒时只有梭哈全到处去才能使最小步数最小。此外由于有三个杯子,任意两个最终相同就跳出。
代码如下:

#include <bits/stdc++.h>
using namespace std;
const int N = 110;
typedef long long LL;
LL w[3];
bool st[N][N][N];
struct node
{LL v[3],step;
};
void bfs()
{memset(st,false,sizeof st);queue<node>q;q.push({w[0],0,0,0});st[w[0]][0][0]=true;while(q.size()){node t=q.front();q.pop();if(t.v[0]==0&&t.v[1]==t.v[2] || t.v[1]==0&&t.v[0]==t.v[2] || t.v[2]==0&&t.v[0]==t.v[1])//有下面那行这行固定为t.v[0]==t.v[2]&&t.v[1]==0{cout<<t.step<<endl;return;}for(int i=0;i<3;i++)for(int j=0;j<3;j++){if(i==j) continue;node tt=t;LL minn=min(tt.v[i],w[j]-tt.v[j]);tt.v[i]-=minn;tt.v[j]+=minn;if(!st[tt.v[0]][tt.v[1]][tt.v[2]]){tt.step++;q.push(tt);st[tt.v[0]][tt.v[1]][tt.v[2]]=true;}}}cout<<"NO"<<endl;
}
int main()
{while(cin>>w[0]>>w[1]>>w[2],w[0]&&w[1]&&w[2]){//if(w[1]>w[2]) swap(w[1],w[2]);//此时,保证最后平分的是w[0]==w[2] && w[1]==0,否则讨论3种情况if(w[0]%2) cout<<"NO"<<endl;else bfs();}return 0;
}

【kuangbin】简单搜索 - 13.非常可乐【BFS】相关推荐

  1. kuangbin 专题一 简单搜索

    kuangbin 专题一 简单搜索 1.POJ1321棋盘问题[DFS] 代码 自己的想法 2.POJ2251Dungeon Master[三维空间BFS] 代码 自己的想法 3.POJ3278 Ca ...

  2. BFS简单搜索--POJ 2243

    这题就是简单的BFS搜索,刚刚转到C++,还有很多库函数不熟悉,理解到BFS是一种奇妙的迭代法,其用的主要是队列的性质. 1 /*BFS简单搜索*/ 2 #include<iostream> ...

  3. 和我一起打造个简单搜索之SpringDataElasticSearch入门

    网上大多通过 java 操作 es 使用的都是 TransportClient,而介绍使用 SpringDataElasticSearch 的文章相对比较少,笔者也是摸索了许久,接下来本文介绍 Spr ...

  4. HDU 1240 Asteroids!(DFS简单搜索)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1240 Asteroids! Time Limit: 2000/1000 MS (Java/Others ...

  5. solr简单搜索案例

    solr简单搜索案例 使用Solr实现电商网站中商品信息搜索功能,可以根据关键字搜索商品信息,根据商品分类.价格过滤搜索结果,也可以根据价格进行排序,实现分页. 架构分为: 1. solr服务器 2. ...

  6. 简单搜索app产品分析

    前言:最早接触到简单搜索大概是在17年的年底到18年的年初,当时的十分热门的抖音app推出了百万答题的活动,此时,简单搜索的语音搜索在此杀了出来,也就是这段时间开始了第一次认识到简单搜索,了解到简单搜 ...

  7. 简单搜索--BFS--Catch That Cow

    简单搜索–BFS–Catch That Cow Description 农夫约翰已被告知一头逃亡牛的下落,并希望立即抓住她.他从某一时刻开始N(0≤)N(≤100,000)在一个数字线上,母牛在一个点 ...

  8. 答题抢钱就用简单搜索APP,不死能顶12张复活卡

    百度语音搜索,念题目搜答案--3秒搜索,轻松答题! 
手机百度和简单搜索app(点击去下载)都有语音搜索功能! 
–>>简单搜索(点击去下载)
简单搜索,拥有强大语音搜索能力的极简极速搜索 ...

  9. 搜索入门之BFS宽度优先搜索

    基础搜索入门BFS BFS全称宽度优先搜索算法(又称广度优先搜索)是最简便的图的搜索算法之一,这一算法也是很多重要的图的算法的原型.Dijkstra单源最短路径算法和Prim最小生成树算法都采用了和宽 ...

最新文章

  1. ELK:收集k8s容器日志最佳实践
  2. 【转】Plotting texts as graphs with R and igraph
  3. JAVA字符串的替换replace、replaceAll、replaceFirst的区别解析。
  4. python字典添加主键_python 字典相关操作
  5. C#读书雷达 | TW洞见
  6. php可以支持代码重用技术的命令,Linux下的编程 PHP高级技巧全放送(一)
  7. 10个Python编程窍门,不懂就亏了
  8. LR 监控mysql
  9. redis 备份导出rdb_Redis学习——Redis持久化之RDB备份方式保存数据
  10. 在cad如果用计算机,CAD如何使用快速计算器为中的变量区域功能
  11. Bill Gates 2007年哈佛演讲(中/英文)
  12. lumion自动保存_19条新人必看的Lumion良好操作习惯
  13. 零信任在智慧城市典型场景中的融合应用
  14. 华为S6720系列万兆交换机光模块解决方案
  15. html5图片在线剪辑,Web端裁剪图片方法
  16. C/C++ C语言定义结构体的几种方法
  17. 阿拉伯数字金钱转中文大写
  18. 使用官方APi获取Youtube视频资源
  19. Eureka注册中心的搭建与使用
  20. java中各种类型所占内存空间大小

热门文章

  1. 一套靠谱的外贸型服装鞋业系统长啥样?
  2. SpringBoot源码分析(二)之自动装配demo
  3. (PTA)数据结构(作业)6、队列
  4. 7、公共电话交换网络(物理层)
  5. live2d_Live2D解锁丨SR羁绊复刻,生日定制服装上架!
  6. 解决pip无法更新问题
  7. 找准山西智慧城市建设的着力点
  8. 《中国人史纲》读书笔记:第八章、第九章 公元前第六、五世纪
  9. 【工程师笔记】第六期:一项Xeon E5-2600 v4测试数据的背后
  10. 智慧城市服务平台硬件采购清单(参考)