USACO training course Mother's Milk /// DFS(有点意思) oj10120
题目大意:
输入 A B C 为三个容器的容量
一开始A B是空的 C是满的
每一次倾倒只能在 盛的容器满 或 倒的容器空 时才停止
输出当A容器空时 C容器内剩余量的所有可能值
8 9 10
2 5 10
1 2 8 9 10
5 6 7 8 9 10
- #include<iostream>
- #include<algorithm>
- #include<stdio.h>
- #include<cstring>
- #include<math.h>
- using namespace std;
- int flag[],vis[][],ans[];
- int a,b,c,len;
- void DFS(int nowa,int nowc)
- {
- if(vis[nowa][nowc]) return;
- vis[nowa][nowc]=;
- if(nowa==&&!flag[nowc])
- flag[nowc]=, ans[len++]=nowc;
- int nowb=c-nowa-nowc;
- if(nowa&&nowc<c) ///a->c
- DFS(nowa-min(nowa,c-nowc),nowc+min(nowa,c-nowc));
- if(nowa&&nowb<b) ///a->b
- DFS(nowa-min(nowa,b-nowb),nowc);
- if(nowc&&nowa<a) ///c->a
- DFS(nowa+min(nowc,a-nowa),nowc-min(nowc,a-nowa));
- if(nowc&&nowb<b) ///c->b
- DFS(nowa,nowc-min(nowc,b-nowb));
- if(nowb&&nowa<a) ///b->a
- DFS(nowa+min(a-nowa,nowb),nowc);
- if(nowb&&nowc<c) ///b->c
- DFS(nowa,nowc+min(c-nowc,nowb));
- }
- int main()
- {
- while(~scanf("%d%d%d",&a,&b,&c))
- {
- memset(ans,,sizeof(ans));
- memset(vis,,sizeof(vis));
- memset(flag,,sizeof(flag));
- len=;
- DFS(,c);
- sort(ans,ans+len);
- for(int i=;i<len-;i++)
- printf("%d ",ans[i]);
- printf("%d\n",ans[len-]);
- }
- return ;
- }
USACO training course Mother's Milk /// DFS(有点意思) oj10120的更多相关文章
- USACO 1.4 Mother's Milk
Mother's Milk Farmer John has three milking buckets of capacity A, B, and C liters. Each of the numb ...
- USACO Section1.4 Mother's Milk 解题报告
milk3解题报告 —— icedream61 博客园(转载请注明出处)---------------------------------------------------------------- ...
- 洛谷P1215 [USACO1.4]母亲的牛奶 Mother's Milk
P1215 [USACO1.4]母亲的牛奶 Mother's Milk 217通过 348提交 题目提供者该用户不存在 标签USACO 难度普及/提高- 提交 讨论 题解 最新讨论 暂时没有讨论 ...
- Luogu USACO Training 刷水记录
开个坑记录一下刷USACO的Training的记录 可能会随时弃坑 只有代码和做法简述 可能没有做法简述 [USACO1.1]你的飞碟在这儿Your Ride Is He… 模拟,细节已忘 #incl ...
- P1215 [USACO1.4]母亲的牛奶 Mother's Milk
P1215 [USACO1.4]母亲的牛奶 Mother's Milk 题目描述 农民约翰有三个容量分别是A,B,C升的桶,A,B,C分别是三个从1到20的整数, 最初,A和B桶都是空的,而C桶是装满 ...
- luogu P1215 [USACO1.4]母亲的牛奶 Mother's Milk
题目描述 农民约翰有三个容量分别是A,B,C升的桶,A,B,C分别是三个从1到20的整数, 最初,A和B桶都是空的,而C桶是装满牛奶的.有时,农民把牛奶从一个桶倒到另一个桶中,直到被灌桶装满或原桶空了 ...
- 洛谷 P1215 [USACO1.4]母亲的牛奶 Mother's Milk
题目描述 农民约翰有三个容量分别是A,B,C升的桶,A,B,C分别是三个从1到20的整数, 最初,A和B桶都是空的,而C桶是装满牛奶的.有时,农民把牛奶从一个桶倒到另一个桶中,直到被灌桶装满或原桶空了 ...
- USACO Training刷题记录 By cellur925
Section 1.1 Your Ride Is Here 貌似没啥可说 Greedy Gift Givers 上来就想stl map映射,有两个坑:如果送给别人的人数为0,那么需要特判一下,防止整数 ...
- 关于USACO Training
做了这么久的题目,突然发现最经典的 USACO Training 还没有做过?加速水一遍吧!我会把题解放在上面的.
随机推荐
- R语言 数据类型
R语言数据类型 通常,在使用任何编程语言进行编程时,您需要使用各种变量来存储各种信息. 变量只是保留值的存储位置. 这意味着,当你创建一个变量,你必须在内存中保留一些空间来存储它们. 您可能想存储各种 ...
- php上传(二)
上传的主体页面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www ...
- CF696B Puzzles(期望dp)
传送门 解题思路 比较有意思的一道题.首先假如这个点\(x\)只有\(1\)个儿子\(u\),那么显然可得\(dp[u]=dp[x]+1\).继续如果多加一个儿子\(p\),那么\(p\)在\(u\) ...
- NX二次开发-直线分析函数UF_EVAL_ask_line与NXOpen::Line直线分析的用法
NX11+VS2013 #include <NXOpen/Line.hxx> #include <NXOpen/NXException.hxx> #include <NX ...
- Model Maker上手指南
Model Maker上手指南 目录 1.MM可爱的脸 2.MM中的工程Project 3.新建类图 4.添加类成员 5.实现类的方法 6.生成Delphi代码 7.逆向到模型 8.完全的逆向工程 作 ...
- Cesium资料大全
前言 Cesium是一个用于显示三维地球和地图的开源js库.它可以用来显示海量三维模型数据.影像数据.地形高程数据.矢量数据等等.三维模型格式支持gltf.三维瓦片模型格式支持3d tiles.矢量数 ...
- 剑指offer——01数组中重复的数字
题目描述 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为 ...
- JAVA发展历史!
前言 自1946年2月14日世界上首款计算机问世,第一代计算机语言“机器语言”便诞生了,它使用的是最原始的穿孔卡片,这种卡片上使用的语言只有专家才能理解,与人类语言差别极大.这种语言本质上是计算机能识 ...
- verbosity
import unittest class myTest(unittest.TestCase): def test_01(self): print("普通方法1") def tes ...
- 整理及优化CSS代码的7个原则
作为网页设计师(前端工程师),你可能还记得曾经的那个网页大小建议:一个网页(包括HTML.CSS.Javacript.Flash和图片)尽量不要超过30KB的大小,随着互联网的日益庞大,网络带宽也在飞 ...