【题目描述】

农夫约翰有 3 个容量分别为 a,b,c 升的桶。

最初 a,b 桶都是空的,而 c 桶是装满牛奶的。有时,农夫把牛奶从一个桶倒到另一个桶中,直到被灌桶装满或原桶空了。并且每次倒牛奶,牛奶不会有损失。

写一个程序去帮助农民找出当 a 桶是空的时候,c 桶中牛奶所剩量的所有可能性。

【输入格式】

单独的 1 行包括 3 个整数 a,b,c。

【输出格式】

只有 1 行,升序地列出当 a 桶是空的时候,c 桶牛奶所剩量的所有可能性。

【输入样例】

8 9 10

【输出样例】

1 2 8 9 10

【数据范围】

对于100%的数据,1≤a,b,c≤20

分析

  • 这道题用暴力搜索解决
  • 遇到之前搜索过的三个桶的情况就直接return(用数组记录)
  • 依次展开深搜
  • 数组记录当a桶是0时的c桶,排序去重输出答案

附上代码

#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;int a,b,c;
int ans[1000010];
bool flaga[30],flagb[30],flagc[30];
int cnt;void f(int x,int y,int z)
{if(flaga[x] && flagb[y] && flagc[z])return;flaga[x] = flagb[y] = flagc[z] = true;if(x == 0){cnt++;ans[cnt] = z;}if(x != 0){if(x <= b - y)f(0,x + y,z);else f(x - b + y,b,z);if(x <= c - z)f(0,y,x + z);else f(x - c + z,y,c);}if(y != 0){if(y <= a - x)f(x + y,0,z);else f(a,y - a + x,z);if(y <= c - z)f(x,0,y + z);else f(x,y - c + z,c);}if(z != 0){if(z <= a - x)f(x + z,y,0);else f(a,y,z - a + x);if(z <= b - y)f(x,y + z,0);else f(x,b,z - b + y);}return;
}int main()
{cin >> a >> b >> c;f(0,0,c);sort(ans + 1,ans + cnt + 1);for(int i = 1;i <= cnt;i++){if(i == 1){cout << ans[i] << " ";continue;}if(ans[i] == ans[i - 1])continue;cout << ans[i] << " ";}return 0;
}

母亲的牛奶(dfs)相关推荐

  1. USACO 1.4 Mother's Milk 母亲的牛奶(经典的dfs倒水问题)

    [USACO1.4.4]Mother's Milk 母亲的牛奶 Time Limit:10000MS  Memory Limit:65536K Total Submit:42 Accepted:27  ...

  2. 【USACO TRAINING】母亲的牛奶(洛谷1215题)

    母亲的牛奶 题目描述 农民约翰有三个容量分别是A,B,C升的桶,A.B.C分别是三个从1到20的整数. 最初,A和B桶都是空的,而C桶是装满牛奶的. 有时,约翰把牛奶从一个桶倒到另一个桶中,直到被灌桶 ...

  3. 母亲的牛奶(BFS,DFS)

    农夫约翰有三个容量分别为 A,B,C升的挤奶桶. 最开始桶 A 和桶 B 都是空的,而桶 C 里装满了牛奶. 有时,约翰会将牛奶从一个桶倒到另一个桶中,直到被倒入牛奶的桶满了或者倒出牛奶的桶空了为止. ...

  4. 1355. 母亲的牛奶【一般 / DFS爆搜】

    https://www.acwing.com/problem/content/1357/ #include<bits/stdc++.h> using namespace std; int ...

  5. 母亲的牛奶 Mother's Milk

    题目描述 农民约翰有三个容量分别是A,B,C升的桶,A,B,C分别是三个从1到20的整数, 最初,A和B桶都是空的,而C桶是装满牛奶的.有时,农民把牛奶从一个桶倒到另一个桶中,直到被灌桶装满或原桶空了 ...

  6. P1215 母亲的牛奶

    https://www.luogu.org/problem/show?pid=1215#sub 暴力模拟多种情况.我是用搜索写的,注意返回条件和约束条件. #include<iostream&g ...

  7. [USACO1.4]母亲的牛奶 Mother's Milk

    https://www.luogu.org/problemnew/show/P1215 题解:模拟+BFS /* *@Author: STZG *@Language: C++ */ #include ...

  8. 【USACO training】Chapter 1 入门

    整理的算法模板合集: ACM模板 目录 Section 1.1 介绍 Section 1.2 提交解决方案,任务类型,特殊问题 1.2.1 AcWing 1339. 你的旅途由此开始(字符串模拟) 1 ...

  9. c++小游戏——忍者必须死

    大家好,这里是Dark Mark.上一次,我认认真真地发布了一篇认认真真的文章(BFS母亲的牛奶),这次,我D.M(Dark Mark)要带给大家的是摸鱼的c++代码:忍者必须死. 在游戏中,忍者小黑 ...

最新文章

  1. LoRa VS NB-IoT,一场物联网时代C位争夺战
  2. SpringBoot系列: Web应用鉴权思路
  3. Collection集合--ArrayList源码读后感总结
  4. Qt 图形视图框架中的事件处理和传播
  5. 劫起|再谈Linux epoll惊群问题的原因和解决方案
  6. 《Python游戏编程入门》——1.2 初识Python
  7. static内容相关介绍学习
  8. jenkins 持续集成, 使用sbt多项目同时package
  9. 2019中国民营企业500强发布:华为、海航、苏宁位列前三
  10. 计算机机房接地线要求,机房防雷接地规范要求,机房的防雷接地方式?
  11. Ubuntu 软件包管理 常用 apt 命令
  12. 知识点:vs2017 git 操作重置、还原、挑拣对比
  13. 台式计算机主板,主板天梯图2020 热门台式机电脑主板排行榜
  14. The Open Group即将举办线上线下企业架构从业者峰会
  15. mysql回表什么意思_什么是MYSQL回表查询
  16. 组播IP与组播Mac的对应关系
  17. 新功能!电商宝SCRM新增【售后返款】营销应用,二十多款营销工具助力商家私域流量运营!...
  18. 【陈工笔记】# latex中,“_”如何写? #
  19. cocos2dx 常用的基本功能
  20. 程序员进阶书籍(视频)

热门文章

  1. mac下如何将adobe acrobat reader dc设为.pdf的默认打开方式?
  2. IM聊实现客户端之间信息交互需求文档
  3. 计算机 学院派,总校计算机学院派老师来校召开“2+2”联合培养班学生见面会...
  4. java访问excel表格_Java读取excel表格(示例代码)
  5. 安卓APP源码和设计报告——仿淘宝水果商城
  6. 威纶通触摸屏可以解密吗_不会游泳可以潜水吗?!体验深潜要注意什么?带你解密DSD...
  7. ILOG Gantt 3.0 注册机
  8. 使用C语言的七个步骤
  9. STM32 HAL库BH1750光强检测器驱动代码
  10. Java身份证处理工具