题目大意:

输入 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. Thinkphp 3.2 去掉index.php

    1.httpd.conf中去掉LoadModule rewrite_module modules/mod_rewrite.so 前面的#号 2.httpd.conf 中  AllowOverride ...

  2. Ruby 命令行选项

    Ruby 命令行选项 Ruby 一般是从命令行运行,方式如下: $ ruby [ options ] [.] [ programfile ] [ arguments ... ] 解释器可以通过下列选项 ...

  3. 字符串hash+找模数——cf985F

    19260817比自然溢出都要好使 /* 把原串变成用26个01串表示,第i个串对应的字符是i 然后进行字符串hash,s和t双射的条件是26个串的hash值排序后一一相等 */ #include&l ...

  4. NX二次开发-创建圆弧(圆心-半径)UF_CURVE_create_arc_center_radius

    NX9+VS2012 #include <uf.h> #include <uf_curve.h> #include <uf_modl.h> UF_initializ ...

  5. NX二次开发-UFUN链表UF_MODL_create_list等用法

    NX9+VS2012 #include <uf.h> #include <uf_modl.h> #include <uf_curve.h> #include < ...

  6. idea使用问题

    1. 问题: 突发断电导致idea的play项目错误,无法识别build.sbt,build.sbt文件报错,Cannot resolve symbol 解决方案: For anyone having ...

  7. prop不同数据类型设置默认值

    vue prop 会接收不同的数据类型,这里列出了 常用的数据类型的设置默认值的写法,其中包含: Number, String, Boolean, Array,  Function, Object   ...

  8. arcgis api for javascipt 输出图片

    地图模板制作-发布-gpurl调用 window.open可以直接打开url链接. saveas可以另存,仅支持ie浏览器 <!DOCTYPE html><html><h ...

  9. go modules学习

    https://github.com/golang/go/wiki/Modules https://tonybai.com/2018/07/15/hello-go-module/ https://ww ...

  10. iOS开发事件分发机制—响应链—手势影响

    1.提纲 什么是iOS的事件分发机制 ? 一个事件UIEvent又是如何响应的? 手势对于响应链有何影响? 2.事件分发机制 2.1.来源 以直接触摸事件为例: 当用户一个手指触摸屏幕是会生成一个UI ...