USACO-Section 1.4 Mother Milk[模拟][搜索]
来源:互联网 发布:淘宝举报假冒商品 编辑:程序博客网 时间:2024/06/13 05:19
题意:
农民约翰有三个容量分别是A,B,C升的桶,A,B,C分别是三个从1到20的整数, 最初,A和B桶都是空的,而C桶是装满牛奶的。有时,农民把牛奶从一个桶倒到 另一个桶中,直到被灌桶装满或原桶空了。当然每一次灌注都是完全的。由于节约, 牛奶不会有丢失
写一个程序去帮助农民找出当A桶是空的时候,C桶中牛奶所剩量的所有可能性。
/*ID:jsntrdy1PROG: milk3 LANG: C++*/#include<cstdio>#include<iostream>#include<cstring>#include<fstream>using namespace std;const int N=30;int A,B,C;ifstream fin("milk3.in");ofstream fout("milk3.out");int m[N][N][N];//记录该状态是否出现过 int p[N];//记录 c 的可能取值 void f(int a,int b,int c){ //如果该状态已存在 if(m[a][b][c]) return; m[a][b][c]=1; //a空时 c的可能性 if(!a&&!p[c]) p[c]=1; //a->b if(a>B-b) f(a-(B-b),B,c); else f(0,a+b,c); //b->a if(b>A-a) f(A,b-(A-a),c); else f(a+b,0,c); //a->c if(a>C-c) f(a-(C-c),b,C); else f(0,b,c+a); //c->a if(c>(A-a)) f(A,b,c-(A-a)); else f(a+c,b,0); //b->c if(b>C-c) f(a,b-(C-c),C); else f(a,0,c+b); //c->b if(c>(B-b)) f(a,B,c-(B-b)); else f(a,b+c,0); }int main(){ fin>>A>>B>>C; f(0,0,C); for(int i=0;i<C;i++) if(p[i]==1) fout<<i<<' '; fout<<C<<endl; return 0;}
阅读全文
0 0
- USACO-Section 1.4 Mother Milk[模拟][搜索]
- USACO Section 1.4 Mother's Milk 搜索
- USACO section 1.4.4 Mother's Milk
- USACO Section 1.4 Mother's Milk
- USACO Section 1.4 Mother's Milk
- USACO Section 1.4 Mother's Milk
- 【USACO】Mother's Milk(搜索)
- USACO Section 1.4 Mother's Milk - 输出错了好几次..
- USACO Section 1.4 - Mother's Milk(DFS + 记忆化)
- USACO-Section 1.4 Mother's Milk(BFS)
- Section 1.4 Mother's Milk
- USCAO section Mother's Milk(搜索)
- [usaco]1.4 Mother’s Milk
- USACO 1.4 Mother's Milk
- USACO 1.4 Mother's Milk
- USACO 1.4-Mother's Milk
- USACO 1.4 Mother's Milk
- USACO 1.4 Mother's Milk
- spring 注解的学习
- 在win7下安装Ubuntu系统启动驱动
- Android调节屏幕亮度实现代码
- FTP 协议那些事
- 463. Island Perimeter
- USACO-Section 1.4 Mother Milk[模拟][搜索]
- 学习笔记(逆向汇编)Day16-Day20
- ServletContext作用功能详解
- [Unity&C#]简化IF语句的一种方式x => x.name == var_str
- JVM(2):JVM内存结构
- linux字符驱动之异步通知按键驱动
- 淘淘商城系列——搜索服务搭建
- 求素数 C++
- JAVA面向对象的三大特性