[USACO1.4]母亲的牛奶 Mother's Milk
https://www.luogu.org/problemnew/show/P1215
题解:模拟+BFS
/*
*@Author: STZG
*@Language: C++
*/
#include <bits/stdc++.h>
#include<iostream>
#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<string>
#include<vector>
#include<bitset>
#include<queue>
#include<deque>
#include<stack>
#include<cmath>
#include<list>
#include<map>
#include<set>
//#define DEBUG
#define RI register int
using namespace std;
typedef long long ll;
//typedef __int128 lll;
const int N=20+10;
const int M=100000+10;
const int MOD=1e9+7;
const double PI = acos(-1.0);
const double EXP = 1E-8;
const int INF = 0x3f3f3f3f;
int t,n,m,k,q;
int ans,cnt,flag,sum;
bool vis[N][N][N];
char str;
int cup[3];
struct node{int water[3];
}x,temp,f;
void pour(int a,int b){//倒水函数,把a杯子中的可乐倒到b杯子中int sum=temp.water[a]+temp.water[b];if(sum>=cup[b])temp.water[b]=cup[b];elsetemp.water[b]=sum;temp.water[a]=sum-temp.water[b];
}void bfs(){queue<node>q;x.water[0]=0;x.water[1]=0;x.water[2]=cup[2];q.push(x);vis[0][0][cup[2]]=1;while(!q.empty()){f=q.front();q.pop();//cout<<f.water[0]<<" "<<f.water[1]<<" "<<f.water[2]<<endl;for(int i=0;i<=2;i++){for(int j=0;j<=2;j++){if(i==j)continue;temp=f;pour(i,j);//cout<<temp.water[0]<<" "<<temp.water[1]<<" "<<temp.water[2]<<endl;if(vis[temp.water[0]][temp.water[1]][temp.water[2]]==0){q.push(temp);vis[temp.water[0]][temp.water[1]][temp.water[2]]=1;}}}}
}
int main()
{
#ifdef DEBUGfreopen("input.in", "r", stdin);//freopen("output.out", "w", stdout);
#endif//ios::sync_with_stdio(false);//cin.tie(0);//cout.tie(0);//scanf("%d",&t);//while(t--){scanf("%d%d%d",&cup[0],&cup[1],&cup[2]);bfs();set<int>st;for(int i=0;i<=cup[1];i++){for(int j=0;j<=cup[2];j++){if(vis[0][i][j]){st.insert(j);}}}for(set<int>::iterator it=st.begin();it!=st.end();it++){printf("%d ",*it);}//}#ifdef DEBUGprintf("Time cost : %lf s\n",(double)clock()/CLOCKS_PER_SEC);
#endif//cout << "Hello world!" << endl;return 0;
}
[USACO1.4]母亲的牛奶 Mother's Milk相关推荐
- 母亲的牛奶 Mother's Milk
题目描述 农民约翰有三个容量分别是A,B,C升的桶,A,B,C分别是三个从1到20的整数, 最初,A和B桶都是空的,而C桶是装满牛奶的.有时,农民把牛奶从一个桶倒到另一个桶中,直到被灌桶装满或原桶空了 ...
- USACO 1.4 Mother's Milk 母亲的牛奶(经典的dfs倒水问题)
[USACO1.4.4]Mother's Milk 母亲的牛奶 Time Limit:10000MS Memory Limit:65536K Total Submit:42 Accepted:27 ...
- 【USACO TRAINING】母亲的牛奶(洛谷1215题)
母亲的牛奶 题目描述 农民约翰有三个容量分别是A,B,C升的桶,A.B.C分别是三个从1到20的整数. 最初,A和B桶都是空的,而C桶是装满牛奶的. 有时,约翰把牛奶从一个桶倒到另一个桶中,直到被灌桶 ...
- uscao Mother's Milk
bfs吧,我做过一题非常可乐跟这题很像.就是每次把牛奶在两个杯子中互倒,找到所有情况把a==0这个情况下的c保存起来(可能不同状态下的c相同用vis标记). /* ID: jinbo wu LANG: ...
- usaco Mother's Milk
问题:有三个容器A,B,C,只能从一个容器倒入另一容器,要么全部倒入,要么倒直到另一容器满.问容器A为0时,C可能的值 思路: 1.深度优先搜索 用State来表示int a[3],遍历从一容器到另两 ...
- USACO-Section1.5 Mother's Milk (深度优先搜索)
2017-8-1 题目描述 给你三个容器,初始时前两个为空,最后一个为满,理想状态下,求当第一个容器 为空时,最后一个容器所剩的所有可能性 解答 (1)只能有牛奶的倒给未满的 (2)避免陷入死循环-& ...
- 母亲的牛奶(dfs)
[题目描述] 农夫约翰有 3 个容量分别为 a,b,c 升的桶. 最初 a,b 桶都是空的,而 c 桶是装满牛奶的.有时,农夫把牛奶从一个桶倒到另一个桶中,直到被灌桶装满或原桶空了.并且每次倒牛奶,牛 ...
- 母亲的牛奶(BFS,DFS)
农夫约翰有三个容量分别为 A,B,C升的挤奶桶. 最开始桶 A 和桶 B 都是空的,而桶 C 里装满了牛奶. 有时,约翰会将牛奶从一个桶倒到另一个桶中,直到被倒入牛奶的桶满了或者倒出牛奶的桶空了为止. ...
- P1215 母亲的牛奶
https://www.luogu.org/problem/show?pid=1215#sub 暴力模拟多种情况.我是用搜索写的,注意返回条件和约束条件. #include<iostream&g ...
最新文章
- 在java项目中加载IEDriverServer.exe引用路径
- 查看Entity Framework生成的SQL语句
- 华为hcia H31-311 练习题
- linux c语言 ppt,linux操作系统下c语言编程入门.ppt
- 剑桥大学eap入学测试准备!!!救命稻草
- 【普及组模拟赛】手机
- [Git] 001 初识 Git 与 GitHub 之新建仓库
- C语言不调用库函数画一个三角形
- 800万行代码的鸿蒙系统,在世界上处于什么水平?
- 【Clickhouse】Clickhouse 外部存储引擎之 hdfs
- TP5 Validate 验证
- Ubuntu 16.04安装Docker
- 数字图像处理笔记⑧——纹理分析
- 《Dreamweaver CS6 完全自学教程》笔记 第十一章:模板和库
- 数据预处理——样本分布(正态分布、偏态分布)
- 哪些地方需要使用到301转向
- laravel Eloquent whereIn 多个字段
- 个人网站,有哪些虚拟主机值得购买?
- 医咖会免费SPSS教程学习笔记—Cohen’s kappa系数
- CISC(复杂指令集)与RISC(精简指令集)的区别
热门文章
- python代码查询_python 查询代码量
- php artisan 出错,Laravel 5.2 php artisan migrate:回滚错误
- java堆设置成多少合适_jvm~xmx设置多少合适
- 九、Docker快速搭建Elastic Stack(上篇)
- 七十六、Python | Leetcode二分查找和分治算法系列
- 五十八、Java8的新特性Lambda表达式
- 中绘制折线_啥是折线图?啥时候用?怎么用呢?这里全都有,满足你的味蕾
- 2021年图机器学习有哪些新突破?麦吉尔大学博士后一文梳理展望领域趋势
- AAAI 2021 | 用于图拓扑演化的深度图谱进化网络
- 计算未来轻沙龙 | 顶会论文相继放榜,NLP领域有哪些最新进展?