usaco1.4.4(milk3)
題目:
Mother's MilkFarmer John has three milking buckets of capacity A, B, and C liters. Each of the numbers A, B, and C is an integer from 1 through 20, inclusive. Initially, buckets A and B are empty while bucket C is full of milk. Sometimes, FJ pours milk from one bucket to another until the second bucket is filled or the first bucket is empty. Once begun, a pour must be completed, of course. Being thrifty, no milk may be tossed out.
Write a program to help FJ determine what amounts of milk he can leave in bucket C when he begins with three buckets as above, pours milk among the buckets for a while, and then notes that bucket A is empty.
PROGRAM NAME: milk3
INPUT FORMAT
A single line with the three integers A, B, and C.
SAMPLE INPUT (file milk3.in)
8 9 10OUTPUT FORMAT
A single line with a sorted list of all the possible amounts of milk that can be in bucket C when bucket A is empty.
SAMPLE OUTPUT (file milk3.out)
1 2 8 9 10SAMPLE INPUT (file milk3.in)
2 5 10SAMPLE OUTPUT (file milk3.out)
5 6 7 8 9 10 都說了是搜索,紅果果的DFS代碼: /* ID:614433244 PROG: milk3 LANG: C++ */#include"iostream" #include"cstdio" #include"memory.h" #include"algorithm" using namespace std; bool map[21][21][21]={0}; int ans[25],head=-1; bool flag[25]={0}; int a,b,c; void dfs( int x,int y,int z ) {if( map[x][y][z] )return;else{map[x][y][z]=1;if( x==0&&flag[z]==0 ){head++;ans[head]=z;flag[z]=1;}//A->Bif( x+y<=b )dfs( 0,x+y,z );elsedfs( x-( b-y ),b,z );//A->Cif( x+z<=c )dfs( 0,y,x+z );elsedfs( x+z-c,y,c );//B->Aif( x+y<=a )dfs( x+y,0,z );elsedfs( a,x+y-a,z );//B->Cif( y+z<=c )dfs( x,0,y+z );elsedfs( x,y+z-c,c );//C->Aif( x+z<=a )dfs( x+z,y,0 );elsedfs( a,y,x+z-a );//C->Bif( y+z<=b )dfs( x,y+z,0 );elsedfs( x,b,y+z-b );} }int main() {freopen("milk3.in","r",stdin);freopen("milk3.out","w",stdout);scanf("%d%d%d",&a,&b,&c);dfs( 0,0,c );sort( ans,ans+head+1 );int i;for( i=0;i<head;i++ )printf("%d ",ans[i]);printf("%d\n",ans[i]);return 0; }
不過因為節(jié)點走過了就無需再走,所以無需記住回溯
轉(zhuǎn)載于:https://www.cnblogs.com/rolyxiao/archive/2012/07/14/2591532.html
總結(jié)
以上是生活随笔為你收集整理的usaco1.4.4(milk3)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 开发HTML5手机游戏的5个注意要点--
- 下一篇: ssh_askpass: exec(/u