【USACO 1.4.4】母亲的牛奶
【题目描述】
【格式】
【分析】
直接上BFS就行了,注意判重。
#include <iostream>
#include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
#include <queue>
const int Max=;
#define hash(t) h[t.a][t.b][t.c]
using namespace std;
struct State{int a,b,c;}data;
bool h[][][],h_2[];//哈希表
int A,B,C,point=,ans[Max];
void bfs();
void check(State t);
int main()
{
//文件操作
freopen("milk3.in","r",stdin);
freopen("milk3.out","w",stdout);
scanf("%d%d%d",&A,&B,&C);
data.a=data.b=;data.c=C;//初始状态
bfs();
sort(ans,ans+point);
for (int i=;i<point;i++) printf("%d ",ans[i]);
return ;
}
void bfs()
{
memset(h,,sizeof(h));//初始化哈希表
memset(h_2,,sizeof(h_2));
queue<State>Q;
Q.push(data);
hash(data)=;
check(data);
while (!Q.empty())
{
State u=Q.front(),v;Q.pop();
v=u;
//倒满的
if (v.a>=B-v.b) {v.a-=B-v.b;v.b=B;if (hash(v)==) {Q.push(v);hash(v)=;check(v);}}v=u;
if (v.b>=A-v.a) {v.b-=A-v.a;v.a=A;if (hash(v)==) {Q.push(v);hash(v)=;check(v);}}v=u;
if (v.a>=C-v.c) {v.a-=C-v.c;v.c=C;if (hash(v)==) {Q.push(v);hash(v)=;check(v);}}v=u;
if (v.c>=A-v.a) {v.c-=A-v.a;v.a=A;if (hash(v)==) {Q.push(v);hash(v)=;check(v);}}v=u;
if (v.c>=B-v.b) {v.c-=B-v.b;v.b=B;if (hash(v)==) {Q.push(v);hash(v)=;check(v);}}v=u;
if (v.b>=C-v.c) {v.b-=C-v.c;v.c=C;if (hash(v)==) {Q.push(v);hash(v)=;check(v);}}v=u;
//倒不满
if (v.a<B-v.b) {v.b+=v.a;v.a=;if (hash(v)==) {Q.push(v);hash(v)=;check(v);}}v=u;
if (v.b<A-v.a) {v.a+=v.b;v.b=;if (hash(v)==) {Q.push(v);hash(v)=;check(v);}}v=u;
if (v.a<C-v.c) {v.c+=v.a;v.a=;if (hash(v)==) {Q.push(v);hash(v)=;check(v);}}v=u;
if (v.c<A-v.a) {v.a+=v.c;v.c=;if (hash(v)==) {Q.push(v);hash(v)=;check(v);}}v=u;
if (v.c<B-v.b) {v.b+=v.c;v.c=;if (hash(v)==) {Q.push(v);hash(v)=;check(v);}}v=u;
if (v.b<C-v.c) {v.c+=v.b;v.b=;if (hash(v)==) {Q.push(v);hash(v)=;check(v);}}v=u;
}
}
void check(State t)
{
if (t.a== && h_2[t.c]==)
{
ans[point++]=t.c;
h_2[t.c]=;
}
return;
}
【USACO 1.4.4】母亲的牛奶的更多相关文章
- 随手练——USACO 1.44 母亲的牛奶
P1215 [USACO1.4]母亲的牛奶 Mother's Milk 洛谷 P1215:https://www.luogu.org/problemnew/show/P1215 解题思想:DFS 大一 ...
- 洛谷P1215 [USACO1.4]母亲的牛奶 Mother's Milk
P1215 [USACO1.4]母亲的牛奶 Mother's Milk 217通过 348提交 题目提供者该用户不存在 标签USACO 难度普及/提高- 提交 讨论 题解 最新讨论 暂时没有讨论 ...
- P1215 [USACO1.4]母亲的牛奶 Mother's Milk
P1215 [USACO1.4]母亲的牛奶 Mother's Milk 题目描述 农民约翰有三个容量分别是A,B,C升的桶,A,B,C分别是三个从1到20的整数, 最初,A和B桶都是空的,而C桶是装满 ...
- 母亲的牛奶(milk)
母亲的牛奶(milk) 题目描述 农民约翰有三个容量分别是A.B.C升的桶,A.B.C分别是三个从1到20的整数,最初,A和B桶都是空的,而C桶是装满牛奶的.有时,约翰把牛奶从一个桶倒到另一个桶中,直 ...
- 母亲的牛奶(milk) (BFS)
问题 A: 母亲的牛奶(milk) 时间限制: 1 Sec 内存限制: 64 MB提交: 14 解决: 8[提交][状态][讨论版] 题目描述 农民约翰有三个容量分别是A.B.C升的桶,A.B.C ...
- USACO 1.4.2 Mother's Mil 母亲的牛奶(DFS)
Description 农民约翰有三个容量分别是A,B,C升的桶,A,B,C分别是三个从1到20的整数,最初,A和B桶都是空的,而C桶是装满牛奶的.有时,约翰把牛奶从一个桶倒到另一个桶中,直到被灌桶装 ...
- luogu P1215 [USACO1.4]母亲的牛奶 Mother's Milk
题目描述 农民约翰有三个容量分别是A,B,C升的桶,A,B,C分别是三个从1到20的整数, 最初,A和B桶都是空的,而C桶是装满牛奶的.有时,农民把牛奶从一个桶倒到另一个桶中,直到被灌桶装满或原桶空了 ...
- 洛谷 P1215 [USACO1.4]母亲的牛奶 Mother's Milk
题目描述 农民约翰有三个容量分别是A,B,C升的桶,A,B,C分别是三个从1到20的整数, 最初,A和B桶都是空的,而C桶是装满牛奶的.有时,农民把牛奶从一个桶倒到另一个桶中,直到被灌桶装满或原桶空了 ...
- 【USACO 1.3.1】混合牛奶
[题目描述] 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助梅丽乳业找到最优的牛奶采购方案. 梅丽乳业从一些奶农手中采购牛奶,并且每一位奶农为乳制品加工企业提供的价格是不同的. ...
随机推荐
- 修改css
.content{ height: 100%; } .con{ border: 1px solid #eeeeee; display: inline-block; width:86.8%; ##修改这 ...
- 【HDOJ】2267 How Many People Can Survive
BFS. #include <iostream> #include <cstdio> #include <cstring> #include <queue&g ...
- Unity NGUI Tween的用法
unity版本:4.5 NGUI版本:3.6.5 参考链接:http://www.colabug.com/thread-1029974-1-1.html,作者:COLABUG.COM 橘虞 htt ...
- Javascript面向对象编程(三):非构造函数的继承 by 阮一峰
今天是最后一个部分,介绍不使用构造函数实现"继承". 一.什么是"非构造函数"的继承? 比如,现在有一个对象,叫做"中国人". var Ch ...
- 【最短路】NEERC15 F Froggy Ford(2015-2016 ACM-ICPC)(Codeforces GYM 100851)
题目链接: http://codeforces.com/gym/100851 题目大意: 一只青蛙跳过宽为W的河,河中游N个石头,坐标xi,yi,现在往河中间添加一个石头,使得每次跳跃的最大的距离最小 ...
- Win7下IE8无法打开https类型的网站解决方法笔记
现象: 一台笔记本(XP系统),一台台式机(Win7,64位系统),都是IE8,之前没任何问题,访问https也没异常,都能正常访问; 前天突然发现登录火车票网站出现无法打开登录页面情况,后来换其 ...
- hdu 4632区间 dp
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4632 用点容斥原理转移状态, dp[i][j]=dp[i+1][j]+dp[i][j-1]-dp[i+ ...
- servelt乱码问题(tomcat服务端编码为ISO-8859-1)
Post的编码决定机制: <meta http-equiv="Content-Type" content="text/html; charset=gb2312&qu ...
- mysql5.5 对触发器,函数,存储引擎,事件进行主从复制情况.(转)
mysql5.5 对触发器,函数,存储引擎,事件进行主从复制情况. 转(http://blog.csdn.net/m582445672/article/details/7670802) 一.My ...
- 项目经历——EasyUI的检索和更新操作
什么事都耐不住“磨”?! 比如一个让人很头疼的问题,对于项目中所用到的EasyUI框架就是一个很明显的感受.项目使用的EasyUI框架,自身封装好的样式使得开发者不用考虑具体的div和css样式了,但 ...