USACO-Mother's Milk
2013-04-26 19:53
232 查看
http://ace.delos.com/usacoprob2?a=SZbyXoKqpyP&S=milk3
一题比较简单的搜索题。nocow上列出3种解法:http://www.nocow.cn/index.php/USACO/milk3
就我的感觉吧,方法一最简单而且最靠谱,而我的程序长得好像和方法一最像了= =
因为倒法只有6种(a倒b,a倒c,b倒a,b倒c,c倒a,c倒b),而且当且仅当倒出桶有牛奶才可以倒出。而倒出多少牛奶适合呢?这就关系到倒出桶的牛奶总量和倒入桶可承受的牛奶量了。具体的看程序。
第一次拿到first time!值得庆祝!
一题比较简单的搜索题。nocow上列出3种解法:http://www.nocow.cn/index.php/USACO/milk3
就我的感觉吧,方法一最简单而且最靠谱,而我的程序长得好像和方法一最像了= =
因为倒法只有6种(a倒b,a倒c,b倒a,b倒c,c倒a,c倒b),而且当且仅当倒出桶有牛奶才可以倒出。而倒出多少牛奶适合呢?这就关系到倒出桶的牛奶总量和倒入桶可承受的牛奶量了。具体的看程序。
#include <iostream> #include <string.h> #include <cstdio> using namespace std; bool f[100]={false}; bool ff[22][22][22]={false}; int aa,bb,cc; void work(int a,int b,int c) { if (ff[a][b][c]) return; //三维数组判重,不过听说二维也可以 ff[a][b][c]=true; if (a==0) f[c]=true; if (a!=0) { work(a-min(bb-b,a),b+min(bb-b,a),c); //a->b work(a-min(cc-c,a),b,c+min(cc-c,a)); //a->c } if (b!=0) { work(a+min(aa-a,b),b-min(aa-a,b),c); //b->a work(a,b-min(cc-c,b),c+min(cc-c,b)); //b->c } if (c!=0) { work(a+min(aa-a,c),b,c-min(aa-a,c)); //c->a work(a,b+min(bb-b,c),c-min(bb-b,c)); //c->b } } int main() { freopen("milk3.in","r",stdin); freopen("milk3.out","w",stdout); cin>>aa>>bb>>cc; work(0,0,cc); for (int i=0;i<cc;i++) if (f[i]) cout<<i<<" "; cout<<cc<<endl; return 0; }
第一次拿到first time!值得庆祝!
相关文章推荐
- Mother's Milk_usaco1.4_bfs
- USACO 1.4 - Mother's Milk(DFS)
- USACO Mother's Milk [ANALYSIS]
- USACO-Section1.4 Mother's Milk
- 【模拟递规】Mother's Milk 母亲的牛奶 (Usaco_Training 1.4)
- USACO-Mother's Milk(搜索)
- USACO 1.4 Mother's Milk
- [usaco]1.4 Mother’s Milk
- USACO 1.4-Mother's Milk
- USACO1.4 母亲的牛奶 Mother's Milk
- USACO: Mother's Milk
- USACO1.4.2 Mother's Milk (milk3)
- USACO-Section1.4 Mother's Milk
- USACO:Mother's Milk
- Usaco 1.4.4 母亲的牛奶(Mother's Milk)
- USACO-Section 1.4 Mother's Milk(BFS)
- USACO1.4.2 Mother's Milk (milk3)
- [USACO] 从Mother’s Milk看搜索
- 一大堆的福利之【USACO题库】Mother's Milk母亲的牛奶
- USACO Section 1.4 Mother's Milk 搜索