計蒜客 無腦博士的試管們

2022-07-17 21:36:13 字數 1526 閱讀 7304

題目:

無腦博士有三個容量分別是 a,b,c 公升的試管,a,b,c 分別是三個從 1 到 20的整數,最初,a和 b試管都是空的,而 c 試管是裝滿硫酸銅溶液的。有時,無腦博士把硫酸銅溶液從乙個試管倒到另乙個試管中,直到被灌試管裝滿或原試管空了。當然每一次灌注都是完全的。由於無腦博士天天這麼折騰,早已熟練,溶液在倒的過程中不會有丟失。

寫乙個程式去幫助無腦博士找出當 a 試管是空的時候,c 試管中硫酸銅溶液所剩量的所有可能性。

輸入包括一行,為空格分隔開的三個數,分別為整數 a,b,c。

輸出包括一行,公升序地列出當 a試管是空的時候,c試管溶液所剩量的所有可能性。

樣例輸入

2 5 10

樣例輸出

5 6 7 8 9 10

型別:dfs,動態規劃

**:

#include #include 

#include

using

namespace

std;

inta,b,c;

//res[a][b] 儲存a b中液體為a b的情況是否遍歷過

int res[21][21

];//

深搜 回溯

//引數為a b c 試管的液體總量

void backtrace(int a,int b,int

c)

else

if(res[a][b] == 0

)backtrace(a,b,c);

a =a0;

b =b0;

}if(c > 0)

else

if(res[a][b] == 0

)backtrace(a,b,c);

a =a0;

c =c0;}}

if(b < b)

else

if(res[a][b] == 0

)backtrace(a,b,c);

a =a0;

b =b0;

}if(c > 0)

else

if(res[a][b] == 0

)backtrace(a,b,c);

b =b0;

c =c0;}}

if(c < c)

else

if(res[a][b] == 0

)backtrace(a,b,c);

a =a0;

c =c0;

}if(b > 0)

else

if(res[a][b] == 0

)backtrace(a,b,c);

b =b0;

c =c0;}}

}int

main()

cout << endl;

}*/int k=0

;

for(int i=b; i >= 0; i--)

else}}

cout

}

ps: 注意輸出格式,最後沒有空格.....

計蒜客 無腦博士的試管們

傳送門 時間限制1000ms 記憶體限制65536k 無腦博士有三個容量分別是 a,b,c 公升的試管,a,b,c 分別是三個從 1 到 20 的整數,最初,a 和 b 試管都是空的,而 c 試管是裝滿硫酸銅溶液的。有時,無腦博士把硫酸銅溶液從乙個試管倒到另乙個試管中,直到被灌試管裝滿或原試管空了。...

計蒜客 無腦博士的試管們 (bfs 模擬)

無腦博士有三個容量分別是 a,b c公升的試管,a,b,ca,b,c 分別是三個從 1 到 2 0 的整數,最初,a 和 b試管都是空的,而 c 試管是裝滿硫酸銅溶液的。有時,無腦博士把硫酸銅溶液從乙個試管倒到另乙個試管中,直到被灌試管裝滿或原試管空了。當然每一次灌注都是完全的。由於無腦博士天天這麼...

無腦博士的試管們

無腦博士有三個容量分別是a,b,c公升的試管,a,b,c分別是三個從1到20的整數,最初,a和b試管都是空的,而c試管是裝滿硫酸銅溶液的。有時,無腦博士把硫酸銅溶液從乙個試管倒到另乙個試管中,直到被灌試管裝滿或原試管空了。當然每一次灌注都是完全的。由於無腦博士天天這麼折騰,早已熟練,溶液在倒的過程中...