題意:還是倒水問題:給出三個瓶子容積為 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 毫公升...