HDU 1495 非常可樂 bfs

2022-06-01 03:21:09 字數 716 閱讀 8312

題意:還是倒水問題:給出三個瓶子容積為 a,b,c :a =b+c;然後問倒幾次才能夠使其中兩個瓶子中水相同且平分已有的水。一開始a瓶被裝滿水

思路:像裝水這種操作的問題就是模擬,而dfs能夠解決最少操作問題(通過記錄運算元)

完整**:

#include#include

#include

#include

#include

using

namespace

std;

int s[3] , vis[105][105][105];

struct

cupnow;

intbfs()

q.pop();

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

cup next =now;

//第 i 杯往第 j 杯裡倒水過程

next.v[i] = now.v[i] -k;

next.v[j] = now.v[j] +k;

next.step = now.step + 1

;

if(vis[next.v[0]][next.v[1]][next.v[2]] == 0

) }}}

} return -1;}

intmain()

else

} return0;

}

hdu 1495 非常可樂 bfs

題目 剛開始那做這個題 怎麼也想不出為什麼可以用bfs 我認為做這個題目 你想到有6種情況哦 假設s 是瓶子 n,m 是有容量的杯子,s可以倒入n中 s也可以倒入m中 n可以倒入s中 n 也可以倒入m中 m也是一樣的哦 所以就有六種情況哦。下面看具體ac 裡面有註解哦 include include...

HDU 1495 非常可樂 (BFS)

problem description 大 家一定覺的運動以後喝可樂是一件很愜意的事情,但是seeyou卻不這麼認為。因為每次當seeyou買了可樂以後,阿牛就要求和seeyou一起分享這 一瓶可樂,而且一定要喝的和seeyou一樣多。但seeyou的手中只有兩個杯子,它們的容量分別是n 毫公升和m...

hdu 1495 非常可樂 bfs

大家一定覺的運動以後喝可樂是一件很愜意的事情,但是seeyou卻不這麼認為。因為每次當seeyou買了可樂以後,阿牛就要求和seeyou一起分享這一瓶可樂,而且一定要喝的和seeyou一樣多。但seeyou的手中只有兩個杯子,它們的容量分別是n 毫公升和m 毫公升 可樂的體積為s s 101 毫公升...