计蒜客 无脑博士 bfs
题目链接无脑博士的试管们
思路:直接模拟倒水过程即可,但是需要记忆判断当前的情况是否已经处理过。dfs和bfs都ok
AC代码
#include <cstdio> #include <cmath> #include <cctype> #include <algorithm> #include <cstring> #include <utility> #include <string> #include <iostream> #include <map> #include <set> #include <vector> #include <queue> #include <stack> using namespace std; #pragma comment(linker, "/STACK:1024000000,1024000000") #define eps 1e-10 #define inf 0x3f3f3f3f #define PI pair<int, int> typedef long long LL; const int maxn = 20 + 5; int dp[maxn][maxn]; set<int>ans; int v[3]; void dfs(int a, int b, int c) { //printf("%d %d %d\n", a, b, c); if(dp[a][b]) return; dp[a][b] = 1; if(a == 0) ans.insert(c); //倒水 for(int i = 0; i < 3; ++i) { for(int j = 0; j < 3; ++j) { if(i == j) continue; int u[3] = {a, b, c}; int pour = min(u[i], v[j]-u[j]); if(pour == 0) continue; u[i] -= pour; u[j] += pour; dfs(u[0], u[1], u[2]); } } } int main() { while(scanf("%d%d%d", &v[0], &v[1], &v[2]) == 3) { ans.clear(); memset(dp, 0, sizeof(dp)); dfs(0, 0, v[2]); for(set<int>::iterator it = ans.begin(); it != ans.end(); ++it) { if(it == ans.begin()) printf("%d", *it); else printf(" %d", *it); } printf("\n"); } return 0; }
如有不当之处欢迎指出!
计蒜客 无脑博士 bfs的更多相关文章
- 计蒜客 无脑博士的试管们 【dfs】
题目链接:https://nanti.jisuanke.com/t/31 题目大意: 无脑博士有三个容量分别是A,B,C 升的试管,A,B,C 分别是三个从 1 到20 的整数,最初,A 和 B 试管 ...
- [计蒜客] 矿石采集【记搜、Tarjan缩点+期望Dp】
Online Judge:计蒜客信息学3月提高组模拟赛 Label:记搜,TarJan缩点,树状数组,期望Dp 题解 整个题目由毫无关联的两个问题组合成: part1 问题:对于每个询问的起点终点,求 ...
- 计蒜客 作弊揭发者(string的应用)
鉴于我市拥堵的交通状况,市政交管部门经过听证决定在道路两侧安置自动停车收费系统.当车辆驶入车位,系统会通过配有的摄像头拍摄车辆画面,通过识别车牌上的数字.字母序列识别车牌,通过连接车管所车辆信息数据库 ...
- 计蒜客的一道题dfs
这是我无聊时在计蒜客发现的一道题. 题意: 蒜头君有一天闲来无事和小萌一起玩游戏,游戏的内容是这样的:他们不知道从哪里找到了N根不同长度的木棍, 看谁能猜出这些木棍一共能拼出多少个不同的不等边三角形. ...
- 计蒜客模拟赛5 D2T1 成绩统计
又到了一年一度的新生入学季了,清华和北大的计算机系同学都参加了同一场开学考试(因为两校兄弟情谊深厚嘛,来一场联考还是很正常的). 不幸的是,正当老师要统计大家的成绩时,世界上的所有计算机全部瘫痪了. ...
- 计蒜客 等边三角形 dfs
题目: https://www.jisuanke.com/course/2291/182238 思路: 1.dfs(int a,int b,int c,int index)//a,b,c三条边的边长, ...
- 计蒜客 方程的解数 dfs
题目: https://www.jisuanke.com/course/2291/182237 思路: 来自:https://blog.csdn.net/qq_29980371/article/det ...
- 计蒜客 买书 dfs
题目: https://www.jisuanke.com/course/2291/182236 思路: 递归解决,从第一本书开始,每本书都有两种选择: //index是book里面每本书价格的下标, ...
- 计蒜客:Entertainment Box
Ada, Bertrand and Charles often argue over which TV shows to watch, and to avoid some of their fight ...
随机推荐
- pythhon_如何读写json数据
案例: 在web应用中常常用到json数据进行传输数据,本质上是字典类型数据转换成字符串,通过字符串进行网页传输,然后把接收到的字符串转换成字典类似数据 需求:实现字典转换成字符串,字符串转换成字典数 ...
- 使用copy命令合并二进制文件
CMD下的copy命令可以将一份或多份文件复制到另一个位置. 也具备连接文件的功能. 使用如下命令格式可以将多个二进制文件合并为一个二进制文件: copy /b file1+file2+...+f ...
- sqlserver2008客户端设置主键自增
是标识改为是
- Linxu指令--date,cal
在linux环境中,不管是编程还是其他维护,时间是必不可少的,也经常会用到时间的运算,熟练运用date命令来表示自己想要表示的时间,肯定可以给自己的工作带来诸多方便. 1.命令格式: date [参数 ...
- Bilibili/DanmakuFlameMaster: Android开源弹幕引擎·烈焰弹幕使 ~ JNI source:Bilibili/NativeBitmapFactory
https://github.com/Bilibili/DanmakuFlameMaster
- awk打印第n个参数到最后一个技巧/将n行组成一列
打印第n参数到最后一个参数 文本的NF不等,即字段长度不固定,想截取从$3到$NF 第一反应是使用循环 [root@localhost ~]# echo "1 2 3 4 5" | ...
- yum升级mysql
已安装mysql升级 升级mysql到5.6:下载源wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm安装源:rpm ...
- 如何使用 highlight.js 高亮代码
highlight 是一款简单易用的 web 代码高亮插件,可以自动检测编程语言并高亮,兼容各种框架,可以说是十分强大了.下面就简单介绍一下如何使用这款插件. 两种使用方式: 1. 手动选择主题,官网 ...
- _beginthread和CreatThread的区别
转自:http://www.jb51.net/article/41459.htm 我们知道在Windows下创建一个线程的方法有两种,一种就是调用Windows API CreateThread()来 ...
- xBIM 基本的模型操作
目录 xBIM 应用与学习 (一) xBIM 应用与学习 (二) xBIM 基本的模型操作 xBIM 日志操作 XBIM 3D 墙壁案例 xBIM 格式之间转换 xBIM 使用Linq 来优化查询 x ...