農民約翰有三個容量分別是a,b,c公升的桶,a,b,c分別是三個從1到20的整數,最初,a和b桶都是空的,而c桶是裝滿牛奶的。有時,約翰把牛奶從乙個桶倒到另乙個桶中,直到被灌桶裝滿或原桶空了。當然每一次灌注都是完全的。由於節約,牛奶不會有丟失。 寫乙個程式去幫助約翰找出當a桶是空的時候,c桶中牛奶所剩量的所有可能性。
單獨的一行包括三個整數a,b和c。
只有一行,列出當a桶是空的時候,c桶牛奶所剩量的所有可能性。
8 9 10
1 2 8 9 10剛開始以為這道題是對所有情況進行分類,發現有幾個情況是很難直接找出來的,是乙個迴圈的過程。
後來聽大佬說這個題用dfs做,當時有些蒙,,,咋用dfs
靜下心來想一想,發現是有規律的,a桶只能到給b桶和c桶,b桶c桶同理。也就是說,用遞迴把所有可能的組合方式都跑一遍,找出其中滿足條件的c桶的容量。(感覺會t,會爆棧的呀)
對於固定的方式,可用dfs搜尋全部狀態。
1 #include2 #include3 #include4 #includeview code5 #include6 #include7 #include8 #include9 #include10 #include11 #include12
using
namespace
std;
13 typedef long
long
ll;14
const
double pi=acos(-1.0
);15
const
double e=exp(1
);16
const
int n = 200009;17
18int x,y,z,cnt=1;19
int check[22][22][22],ans[100000
];20
21bool cmp(int a,int
b)22
25void dfs(int a,int b,int
c)26
3435
if(a)
3646
if(c!=z)
4755}56
if(b)
5767
if(c!=z)
6876}77
if(c)
7888
if(b!=y)
8997}98
}99100int
main()
101
Mother s Mil 母親的牛奶
農民約翰有三個容量分別是a,b,c公升的桶,a,b,c分別是三個從1到20的整數,最初,a和b桶都是空的,而c桶是裝滿牛奶的。有時,約翰把牛奶從乙個桶倒到另乙個桶中,直到被灌桶裝滿或原桶空了。當然每一次灌注都是完全的。由於節約,牛奶不會有丟失。寫乙個程式去幫助約翰找出當a桶是空的時候,c桶中牛奶所剩...
1 4 4 Mother s Mil 母親的牛奶
農民約翰有三個容量分別是a,b,c公升的桶,a,b,c分別是三個從1到20的整數,最初,a和b桶都是空的,而c桶是裝滿牛奶的。有時,約翰把牛奶從乙個桶倒到另乙個桶中,直到被灌桶裝滿或原桶空了。當然每一次灌注都是完全的。由於節約,牛奶不會有丟失。寫乙個程式去幫助約翰找出當a桶是空的時候,c桶中牛奶所剩...
母親的牛奶 Mother s Milk
題目描述 農民約翰有三個容量分別是a,b,c公升的桶,a,b,c分別是三個從1到20的整數,最初,a和b桶都是空的,而c桶是裝滿牛奶的。有時,農民把牛奶從乙個桶倒到另乙個桶中,直到被灌桶裝滿或原桶空了。當然每一次灌注都是完全的。由於節約,牛奶不會有丟失。寫乙個程式去幫助農民找出當a桶是空的時候,c桶...