题目大意:

输入 A B C 为三个容器的容量

一开始A B是空的 C是满的

每一次倾倒只能在 盛的容器满 或 倒的容器空 时才停止

输出当A容器空时 C容器内剩余量的所有可能值

Sample Input

8 9 10
2 5 10

Sample Output

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的更多相关文章

  1. 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 ...

  2. USACO Section1.4 Mother's Milk 解题报告

    milk3解题报告 —— icedream61 博客园(转载请注明出处)---------------------------------------------------------------- ...

  3. 洛谷P1215 [USACO1.4]母亲的牛奶 Mother's Milk

    P1215 [USACO1.4]母亲的牛奶 Mother's Milk 217通过 348提交 题目提供者该用户不存在 标签USACO 难度普及/提高- 提交  讨论  题解 最新讨论 暂时没有讨论 ...

  4. Luogu USACO Training 刷水记录

    开个坑记录一下刷USACO的Training的记录 可能会随时弃坑 只有代码和做法简述 可能没有做法简述 [USACO1.1]你的飞碟在这儿Your Ride Is He… 模拟,细节已忘 #incl ...

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

    P1215 [USACO1.4]母亲的牛奶 Mother's Milk 题目描述 农民约翰有三个容量分别是A,B,C升的桶,A,B,C分别是三个从1到20的整数, 最初,A和B桶都是空的,而C桶是装满 ...

  6. luogu P1215 [USACO1.4]母亲的牛奶 Mother's Milk

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

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

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

  8. USACO Training刷题记录 By cellur925

    Section 1.1 Your Ride Is Here 貌似没啥可说 Greedy Gift Givers 上来就想stl map映射,有两个坑:如果送给别人的人数为0,那么需要特判一下,防止整数 ...

  9. 关于USACO Training

    做了这么久的题目,突然发现最经典的 USACO Training 还没有做过?加速水一遍吧!我会把题解放在上面的.

随机推荐

  1. Java——package和import关键字

    1.8 package和import关键字 1.8.1 package 包其实就是目录,特别是项目比较大,java 文件特别多的情况下,我们应该分目录管理,在java 中称为分包管理,包名称通常采用小 ...

  2. PDO基础

    //PDO:数据访问抽象层 $dsn = "mysql:dbname=mydb;host=localhost";//造PDO对象 $pdo = new PDO($dsn," ...

  3. 经典单调栈最大子矩形——牛客多校第二场H

    题目是求次大子矩形,那么在求最大子矩形的时候维护M1,M2即可 转移M2时比较的过程要注意一下 #include<bits/stdc++.h> using namespace std; # ...

  4. NX二次开发-UFUN工程图表格注释写入文本内容UF_TABNOT_set_cell_text

    NX9+VS2012 #include <uf.h> #include <uf_tabnot.h> #include <NXOpen/Part.hxx> #incl ...

  5. P2004 领地选择

    P2004 领地选择 题目描述 作为在虚拟世界里统帅千军万马的领袖,小Z认为天时.地利.人和三者是缺一不可的,所以,谨慎地选择首都的位置对于小T来说是非常重要的. 首都被认为是一个占地C*C的正方形. ...

  6. 中断控制及basepri 与 basepri_max

    1.总开关 每个CPU有一个中断总开关.通过CPU中断控制寄存器实现.Cortex-M的中断控制寄存器包括:FAULTMASK.PRIMASK.BASEPRI.BASEPRI_MAX.总开关的本质是变 ...

  7. STM32F427VI 电流

  8. 解析css3 shake 抖动样式

    前端时间做项目发现一抖动按钮挺吸引眼球的,研究了下实现原理,在此和大家分享下: CSS Shake是一个使用CSS3实现的动画样式,使用SASS编写,利用它我们可以实现多种不同样式的抖动效果(如下面的 ...

  9. solr +zookeeper+Jetty 集群搭建

    solr版本:4.10.4 这里使用solr自带的jetty内置服务器 zk集群的 安装参照上篇文章: 在节点1example下上启动solr服务: java -DzkHost=192.168.0.1 ...

  10. Neo4j使用简单例子

    Neo4j Versions Most of the examples on this page are written with Neo4j 2.0 in mind, so they skip th ...