题目大意:

输入 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. 线性dp——cf988F

    不是很难,dp[i]表示到位置i的最小花费 #include<bits/stdc++.h> using namespace std; #define ll long long #defin ...

  2. LeetCode 744. Find Smallest Letter Greater Than Target (寻找比目标字母大的最小字母)

    题目标签:Binary Search 题目给了我们一组字母,让我们找出比 target 大的最小的那个字母. 利用 binary search,如果mid 比 target 小,或者等于,那么移到右半 ...

  3. jQuery post使用变量作参数名

    jQuery Query Post使用方法: $.post("test.php", { name: "John", time: "2pm" ...

  4. Neo4j中实现自定义中文全文索引

    数据库检索效率时,一般首要优化途径是从索引入手,然后根据需求再考虑更复杂的负载均衡.读写分离和分布式水平/垂直分库/表等手段:索引通过信息冗余来提高检索效率,其以空间换时间并会降低数据写入的效率:因此 ...

  5. 【转】Java程序CPU飙升问题排查方法

    windows环境下cpu飙升问题 线上某台runtime机器(windows Server)cpu报警,这种情况初步就是代码里面死循环了,先把机器下线了保证不再有新的任务分配进来,然而cpu使用依然 ...

  6. ES6 学习 -- 字符串模板

    ES5及以前,动态操作dom结构时,要多个字符串和变量拼接,如果不换行处理,则需要写很长的代码,不利于阅读理解,如果进行换行写入,则需要一堆的"+"号来连接文本与变量,写起来非常麻 ...

  7. sparkStreaming结合SparkSql实例

    SparkSQL结合SparkStreaming的使用 Flume+Kafka+SparkStreaming已经发展为一个比较成熟的实时日志收集与计算架构,利用Kafka,即可以支持将用于离线分析的数 ...

  8. pandas中series求交集

    在进行数据探索的时候会遇到求交集的情况,比如说:优惠卷预测的时候,有多张表,表1有用户id,表2也有用户id,但是不能确定表1的用户有多少出现在表2当中. un_id1,un_id2 为两个 Seri ...

  9. Hive系统架构

  10. html编写的日历

    1.html (1) <html> <head> <meta http-equiv="Content-Type" content="text ...