问题 A: 母亲的牛奶(milk)

时间限制: 1 Sec  内存限制: 64 MB
提交: 14  解决: 8
[提交][状态][讨论版]

题目描述

农民约翰有三个容量分别是A、B、C升的桶,A、B、C分别是三个从1到20的整数,最初,A和B桶都是空的,而C桶是装满牛奶的。有时,约翰把牛奶从一
个桶倒到另一个桶中,直到被灌桶装满或原桶空了。当然每一次灌注都是完全的,由于节约,牛奶不会丢失。写一个程序去帮助约翰找出当A桶是空的时候,C桶中
牛奶所剩量的所有可能性。

输入

单独的1行,包括三个整数A,B和C。

输出

只有1行,列出当A桶是空的时候,C桶牛奶所剩量的所有可能性。

样例输入

8 9 10

样例输出

1 2 8 9 10

【分析】用一个结构体存三个桶的状态,然后暴力BFS,最后用set存一下结果。
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <time.h>
#include <string>
#include <map>
#include <stack>
#include <vector>
#include <set>
#include <queue>
#define inf 0x3f3f3f3f
#define mod 1000000007
typedef long long ll;
using namespace std;
const int N=;
int n;
int w[][];
int g[];
int a,b,c;
set<int>p;
struct man {
int x,y,z;
};
void bfs(int aa,int bb,int cc) {
w[aa][bb]=;
queue<man>q;
man s;
s.x=;
s.y=;
s.z=cc;
q.push(s);
while(!q.empty()) {
man t=q.front();
q.pop();
if(t.x==)p.insert(t.z);
int f[]; for(int i=; i<; i++) {
f[]=t.x;f[]=t.y; f[]=t.z;
if(f[i]==)continue;
for(int j=; j<; j++) {
f[]=t.x; f[]=t.y; f[]=t.z;
man k;
if(i==j||f[j]==g[j])continue;
if(f[i]+f[j]>=g[j]) {
f[i]=f[i]-(g[j]-f[j]);
f[j]=g[j];
} else if(f[i]+f[j]<g[j]) {
f[j]+=f[i];
f[i]=;
}
k.x=f[];
k.y=f[];
k.z=f[];
if(w[k.x][k.y]==) {
q.push(k);
w[k.x][k.y]=;
}
}
}
}
} int main() {
memset(w,,sizeof(w));
cin>>a>>b>>c;
g[]=a;
g[]=b;
g[]=c;
bfs(a,b,c);
int r[],mm=;
for(set<int>::iterator it=p.begin();it!=p.end();it++)
{
r[mm++]=*it;
}
sort(r,r+mm);cout<<r[];
for(int i=;i<mm;i++)cout<<" "<<r[i];cout<<endl;
return ;
}

母亲的牛奶(milk) (BFS)的更多相关文章

  1. 母亲的牛奶(milk)

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

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

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

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

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

  4. 随手练——USACO 1.44 母亲的牛奶

    P1215 [USACO1.4]母亲的牛奶 Mother's Milk 洛谷 P1215:https://www.luogu.org/problemnew/show/P1215 解题思想:DFS 大一 ...

  5. 洛谷 P2744 [USACO5.3]量取牛奶Milk Measuring

    P2744 [USACO5.3]量取牛奶Milk Measuring 题目描述 农夫约翰要量取 Q(1 <= Q <= 20,000)夸脱(夸脱,quarts,容积单位——译者注) 他的最 ...

  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. 洛谷 P1215 【[USACO1.4]母亲的牛奶 Mother's Milk】

    这道题\(DFS\)就好了,六种情况,\(ab,ac,ba,bc,ca,cb\),我们直接枚举就可.什么?这样不会结束?用一个\(vis\)数组判断走过没有就可以了.最后排序输出即可. \(code: ...

  9. 【USACO 1.4.4】母亲的牛奶

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

随机推荐

  1. EOS docker开发环境

    EOS Wiki提供了有关如何使用docker容器编译最新版本代码的说明.但可能有它自己的一些问题,因此我们鼓励你在学习时引用下面镜像.这样最初会更容易,更快. 如果你还没有安装docker,请在此处 ...

  2. [Leetcode] Copy list with random pointer 对带有任意指针的链表深度拷贝

    A linked list is given such that each node contains an additional random pointer which could point t ...

  3. 【BZOJ 3316】JC loves Mkk 01分数规划+单调队列

    单调栈不断吞入数据维护最值,数据具有单调性但不保证位置为其排名,同时可以按照进入顺序找出临近较值单调队列队列两端均可删除数据但只有队末可以加入数据,仍然不断吞入数据但同时可以额外刨除一些不符合条件的数 ...

  4. POJ 2398 Toy Storage 二分+叉积

    Description Mom and dad have a problem: their child, Reza, never puts his toys away when he is finis ...

  5. sls文件

    http://www.ituring.com.cn/article/42238 只是数据而已 深入学习之前,明白SLS文件只是结构化的数据而已是很有用的.看懂和编写SLS文件不需要理解这一点,但会让你 ...

  6. ViewData和ViewBag的那些事

    既然结论是“共享着相同的数据”,那我们就证实一下吧. 看来结论是正确的. 去查看定义,发现他们的类型是不一样的,ViewData是ViewDataDictionary,ViewBag是dynamic. ...

  7. Eclipse中的Web项目自动部署到Tomcat的webapp目录下

    Eclipse中的Web项目自动部署到Tomcat   原因 很长时间没用Eclipse了,近期由于又要用它做个简单的JSP项目,又要重新学习了,虽然熟悉的很快,但记忆总是很模糊,偶尔犯错,以前很少写 ...

  8. python基础(3)_列表、元组、字典

    一.列表 定义:[ ] 内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素 特性: > 可存放多个值 > 可修改指定索引位置对应的值,可变 > 按照从左到右的顺序定义列表 ...

  9. httpFS访问

    编辑文件httpfs-env.sh 执行sbin/httpfs.sh 执行命令curl -i "http://192.168.1.213:14000/webhdfs/v1?user.name ...

  10. [BZOJ1391]解题报告|网络流的又一类建图&Dinic的若干优化

    1391: [Ceoi2008]order 有N个工作,M种机器,每种机器你可以租或者买过来. 每个工作包括若干道工序,每道工序需要某种机器来完成,你可以通过购买或租用机器来完成. 现在给出这些参数, ...