题目链接:https://nanti.jisuanke.com/t/31

题目大意:

无脑博士有三个容量分别是A,B,C 升的试管,A,B,C 分别是三个从 1 到20 的整数,最初,A 和 B 试管都是空的,而 C 试管是装满硫酸铜溶液的。有时,无脑博士把硫酸铜溶液从一个试管倒到另一个试管中,直到被灌试管装满或原试管空了。当然每一次灌注都是完全的。由于无脑博士天天这么折腾,早已熟练,溶液在倒的过程中不会有丢失。

写一个程序去帮助无脑博士找出当 A 试管是空的时候,C 试管中硫酸铜溶液所剩量的所有可能性。

输入格式

输入包括一行,为空格分隔开的三个数,分别为整数 A,B,C。

输出格式

输出包括一行,升序地列出当 A 试管是空的时候,C 试管溶液所剩量的所有可能性。

样例输入

2 5 10

样例输出

5 6 7 8 9 10
#include <iostream>
using namespace std; int f[][][];
int A, B, C; void dfs(int x, int y, int z)
{
if (x + z > A) //C向A倒
{
if (f[A][y][x + z - A] == )
{
f[A][y][x + z - A] = ;
dfs(A, y, x + z - A);
}
}
else
{
if (f[x + z][y][] == )
{
f[x + z][y][] = ;
dfs(x + z, y, );
}
}
if (y + z>B) //C向B倒
{
if (f[x][B][y + z - B] == )
{
f[x][B][y + z - B] = ;
dfs(x, B, y + z - B);
}
}
else
{
if (f[x][y + z][] == )
{
f[x][y + z][] = ;
dfs(x, y + z, );
}
}
if (x + y >B) //A向B倒
{
if (f[x + y - B][B][z] == )
{
f[x + y - B][B][z] = ;
dfs(x + y - B, B, z);
}
}
else
{
if (f[][x + y][z] == )
{
f[][x + y][z] = ;
dfs(, x + y, z);
}
}
if (x + z > C) //A向C倒
{
if (f[x + z - C][y][C] == )
{
f[x + z - C][y][C] = ;
dfs(x + z - C, y, C);
}
}
else
{
if (f[][y][x + z] == )
{
f[][y][x + z] = ;
dfs(, y, x + z);
}
}
if (x + y > A) //B向A倒
{
if (f[A][x + y - A][z] == )
{
f[A][x + y - A][z] = ;
dfs(A, x + y - A, z);
}
}
else
{
if (f[x + y][][z] == )
{
f[x + y][][z] = ;
dfs(x + y, , z);
}
}
if (y + z > C) //B向C倒
{
if (f[x][y + z - C][C] == )
{
f[x][y + z - C][C] = ;
dfs(x, y + z - C, C);
}
}
else
{
if (f[x][][y + z] == )
{
f[x][][y + z] = ;
dfs(x, , y + z);
}
} } int main()
{
int i, j, k;
void dfs(int x, int y, int z);
cin >> A >> B >> C;
for (i = ; i < A + ; i++)
for (j = ; j < B + ; j++)
for (k = ; k < C + ; k++)
f[i][j][k] = ;
f[][][C] = ;
dfs(, , C);
for (k = ; k < C + ; k++)
for (j = ; j < B + ; j++)
if (f[][j][k] > )
{
cout << k;
if (k != C) cout << ' ';
}
return ;
}

2018-05-14

计蒜客 无脑博士的试管们 【dfs】的更多相关文章

  1. 计蒜客 无脑博士 bfs

    题目链接无脑博士的试管们 思路:直接模拟倒水过程即可,但是需要记忆判断当前的情况是否已经处理过.dfs和bfs都ok AC代码 #include <cstdio> #include < ...

  2. 无脑博士的试管们--dfs搜素

    无脑博士有三个容量分别是A,B,C升的试管,A,B,C分别是三个从1到20的整数,最初,A和B试管都是空的,而C试管是装满硫酸铜溶液的.有时,无脑博士把硫酸铜溶液从一个试管倒到另一个试管中,直到被灌试 ...

  3. 计蒜客 作弊揭发者(string的应用)

    鉴于我市拥堵的交通状况,市政交管部门经过听证决定在道路两侧安置自动停车收费系统.当车辆驶入车位,系统会通过配有的摄像头拍摄车辆画面,通过识别车牌上的数字.字母序列识别车牌,通过连接车管所车辆信息数据库 ...

  4. 计蒜客的一道题dfs

    这是我无聊时在计蒜客发现的一道题. 题意: 蒜头君有一天闲来无事和小萌一起玩游戏,游戏的内容是这样的:他们不知道从哪里找到了N根不同长度的木棍, 看谁能猜出这些木棍一共能拼出多少个不同的不等边三角形. ...

  5. 计蒜客模拟赛5 D2T1 成绩统计

    又到了一年一度的新生入学季了,清华和北大的计算机系同学都参加了同一场开学考试(因为两校兄弟情谊深厚嘛,来一场联考还是很正常的). 不幸的是,正当老师要统计大家的成绩时,世界上的所有计算机全部瘫痪了. ...

  6. 计蒜客 等边三角形 dfs

    题目: https://www.jisuanke.com/course/2291/182238 思路: 1.dfs(int a,int b,int c,int index)//a,b,c三条边的边长, ...

  7. 计蒜客 方程的解数 dfs

    题目: https://www.jisuanke.com/course/2291/182237 思路: 来自:https://blog.csdn.net/qq_29980371/article/det ...

  8. 计蒜客 买书 dfs

    题目: https://www.jisuanke.com/course/2291/182236 思路: 递归解决,从第一本书开始,每本书都有两种选择: //index是book里面每本书价格的下标, ...

  9. 计蒜客:Entertainment Box

    Ada, Bertrand and Charles often argue over which TV shows to watch, and to avoid some of their fight ...

随机推荐

  1. MGR架构 ~ MGR+proxysql(2)

    一 简介: 上篇环境已经搭建完成,我们开始进行测试 二 工具和环境: sysbench ,mgr+proxysql 三 测试方式: sysbench+oltp.lua脚本 四 模拟故障 1 并发环境观 ...

  2. 攻打医院服务器的SamSam勒索木马分析

    攻打医院服务器的SamSam勒索木马分析 近日一款名为SamSam的勒索木马在国外爆发.该木马利用医院系统的服务器漏洞实施入侵,再进行加密勒索钱财.由于医院网络信息安全水平普遍薄弱,SamSam成功感 ...

  3. SpringBoot2.X自定义拦截器实战及新旧配置对比(核心知识)

    简介: 讲解拦截器使用,Spingboot2.x新版本配置拦截拦截器和旧版本SpringBoot配置拦截器区别讲解 1.@Configuration 继承WebMvcConfigurationAdap ...

  4. Django开发笔记二

    Django开发笔记一 Django开发笔记二 Django开发笔记三 Django开发笔记四 Django开发笔记五 Django开发笔记六 1.xadmin添加主题.修改标题页脚和收起左侧菜单 # ...

  5. cmake使用示例与整理总结

    转自: http://blog.csdn.net/wzzfeitian/article/details/40963457/ 本文代码托管于github  https://github.com/carl ...

  6. 边沿检测方法-FPGA入门教程

    本节实验主要讲解FPGA开发中边沿检测方法,我们在设计中会经常用到.这个地方大家一定要理解. 1.1.1.原理介绍 学习HDL语言设计与其他语言不一样,HDL语言设计需要考虑更多的信号的电气特性,时序 ...

  7. Django中全局Context处理器

    1.模板标签和模板变量 模板标签在{% %}中定义: {% if is_logged_in %} Thanks for logging in! {% else %} Please log in. {% ...

  8. L-BFGS算法(转载)

    转载链接:http://blog.csdn.net/itplus/article/details/21897715 前面的拟牛顿法.DFP.BFGS.L-BFGS算法简短总结一下就是: 牛顿法不仅使用 ...

  9. springboot系列九,springboot整合邮件服务、整合定时任务调度

    一.整合邮件服务 如果要进行邮件的整合处理,那么你一定需要有一个邮件服务器,实际上 java 本身提供有一套 JavaMail 组件以实现邮件服务器的搭建,但是这个搭建的服务器意义不大,因为你现在搭建 ...

  10. 005_awk案例实战

    一.工作经验总结. (1)日志案例: 10.100.194.39 10.100.194.39 1019-03-16T11:01:04+08:00 www.uuwatch.com^^3FF91DE01B ...