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

2021-08-01 09:10:56 字數 978 閱讀 2158

無腦博士有三個容量分別是 a,b

,c公升的試管,a,b,ca,

b,c 分別是三個從

1 到 2

0 的整數,最初,a

和 b試管都是空的,而

c 試管是裝滿硫酸銅溶液的。有時,無腦博士把硫酸銅溶液從乙個試管倒到另乙個試管中,直到被灌試管裝滿或原試管空了。當然每一次灌注都是完全的。由於無腦博士天天這麼折騰,早已熟練,溶液在倒的過程中不會有丟失。

寫乙個程式去幫助無腦博士找出當a

試管是空的時候,c

試管中硫酸銅溶液所剩量的所有可能性。

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

b,c。

輸出包括一行,公升序地列出當

a 試管是空的時候,c

c 試管溶液所剩量的所有可能性。

樣例輸入

2 5 10

樣例輸出

5 6 7 8 9 10

分析:bfs求解,每種狀態三個杯子a,b,c中的水n,m,s,六種相互倒水狀態,(a->b,a-c;b->a,b->c;c->a,c->b),每次從要倒水的杯子(剩餘水量a)和要倒入水的杯中(剩餘容量b)選擇乙個小者。模擬即可

ac**:

#include#include#include#include#includeusing namespace std;

const int maxn=20+2;

int vis[maxn][maxn];

struct node

};int a,b,c;

setst;

void bfs();

while(!q.empty())

int a[3];

for(int i=0;i<3;i++)}}

}}}

int main()

printf("\n");

} return 0;

}

計蒜客 無腦博士的試管們

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

計蒜客 無腦博士的試管們

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

無腦博士的試管們

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