母亲的牛奶(dfs)
【题目描述】
农夫约翰有 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)相关推荐
- USACO 1.4 Mother's Milk 母亲的牛奶(经典的dfs倒水问题)
[USACO1.4.4]Mother's Milk 母亲的牛奶 Time Limit:10000MS Memory Limit:65536K Total Submit:42 Accepted:27 ...
- 【USACO TRAINING】母亲的牛奶(洛谷1215题)
母亲的牛奶 题目描述 农民约翰有三个容量分别是A,B,C升的桶,A.B.C分别是三个从1到20的整数. 最初,A和B桶都是空的,而C桶是装满牛奶的. 有时,约翰把牛奶从一个桶倒到另一个桶中,直到被灌桶 ...
- 母亲的牛奶(BFS,DFS)
农夫约翰有三个容量分别为 A,B,C升的挤奶桶. 最开始桶 A 和桶 B 都是空的,而桶 C 里装满了牛奶. 有时,约翰会将牛奶从一个桶倒到另一个桶中,直到被倒入牛奶的桶满了或者倒出牛奶的桶空了为止. ...
- 1355. 母亲的牛奶【一般 / DFS爆搜】
https://www.acwing.com/problem/content/1357/ #include<bits/stdc++.h> using namespace std; int ...
- 母亲的牛奶 Mother's Milk
题目描述 农民约翰有三个容量分别是A,B,C升的桶,A,B,C分别是三个从1到20的整数, 最初,A和B桶都是空的,而C桶是装满牛奶的.有时,农民把牛奶从一个桶倒到另一个桶中,直到被灌桶装满或原桶空了 ...
- P1215 母亲的牛奶
https://www.luogu.org/problem/show?pid=1215#sub 暴力模拟多种情况.我是用搜索写的,注意返回条件和约束条件. #include<iostream&g ...
- [USACO1.4]母亲的牛奶 Mother's Milk
https://www.luogu.org/problemnew/show/P1215 题解:模拟+BFS /* *@Author: STZG *@Language: C++ */ #include ...
- 【USACO training】Chapter 1 入门
整理的算法模板合集: ACM模板 目录 Section 1.1 介绍 Section 1.2 提交解决方案,任务类型,特殊问题 1.2.1 AcWing 1339. 你的旅途由此开始(字符串模拟) 1 ...
- c++小游戏——忍者必须死
大家好,这里是Dark Mark.上一次,我认认真真地发布了一篇认认真真的文章(BFS母亲的牛奶),这次,我D.M(Dark Mark)要带给大家的是摸鱼的c++代码:忍者必须死. 在游戏中,忍者小黑 ...
最新文章
- 民间估值1个亿的AI核心代码终于开源了...
- 如何正确对待vb脚本里的session
- 【转】关于TP3.2 验证码不显示的问题
- Django - Django框架 简单介绍
- OpenGL设置透视投影并渲染旋转的立方体
- 继承_月隐学python第16课
- 图像处理五:python读取图片的几种方式
- Hue由于主备NameNode切换引发的问题
- 单片机c语言加到4归0,单片机C语言教程四
- 两个平面的位置关系和判定方程组解_高中必修二数学知识点
- MSN退休,寻找微软如何融合MSN的答案:体验skype6国际版MSN功能。
- sip协议详解(一)
- Python实现离线字典+听写单词(二):字典数据写进sqlite
- Docker制作深度学习镜像常用操作
- python 实现改变excel文件列宽
- 联想服务器安装win10系统安装教程,联想笔记本安装win10系统图文教程
- IOS 开发技能图谱——ios 开发工程师必知必会要点
- WPS Word二级标题自动编号,本来应该是2.1,可是却变成1.3,怎么办?
- 少儿编程网站源码和scratch课程
- 【小程序】中WXML的语法详解