母亲的牛奶(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++代码:忍者必须死. 在游戏中,忍者小黑 ...
最新文章
- LoRa VS NB-IoT,一场物联网时代C位争夺战
- SpringBoot系列: Web应用鉴权思路
- Collection集合--ArrayList源码读后感总结
- Qt 图形视图框架中的事件处理和传播
- 劫起|再谈Linux epoll惊群问题的原因和解决方案
- 《Python游戏编程入门》——1.2 初识Python
- static内容相关介绍学习
- jenkins 持续集成, 使用sbt多项目同时package
- 2019中国民营企业500强发布:华为、海航、苏宁位列前三
- 计算机机房接地线要求,机房防雷接地规范要求,机房的防雷接地方式?
- Ubuntu 软件包管理 常用 apt 命令
- 知识点:vs2017 git 操作重置、还原、挑拣对比
- 台式计算机主板,主板天梯图2020 热门台式机电脑主板排行榜
- The Open Group即将举办线上线下企业架构从业者峰会
- mysql回表什么意思_什么是MYSQL回表查询
- 组播IP与组播Mac的对应关系
- 新功能!电商宝SCRM新增【售后返款】营销应用,二十多款营销工具助力商家私域流量运营!...
- 【陈工笔记】# latex中,“_”如何写? #
- cocos2dx 常用的基本功能
- 程序员进阶书籍(视频)
热门文章
- mac下如何将adobe acrobat reader dc设为.pdf的默认打开方式?
- IM聊实现客户端之间信息交互需求文档
- 计算机 学院派,总校计算机学院派老师来校召开“2+2”联合培养班学生见面会...
- java访问excel表格_Java读取excel表格(示例代码)
- 安卓APP源码和设计报告——仿淘宝水果商城
- 威纶通触摸屏可以解密吗_不会游泳可以潜水吗?!体验深潜要注意什么?带你解密DSD...
- ILOG Gantt 3.0 注册机
- 使用C语言的七个步骤
- STM32 HAL库BH1750光强检测器驱动代码
- Java身份证处理工具