題目
剛開始那做這個題 怎麼也想不出為什麼可以用bfs
我認為做這個題目 你想到有6種情況哦 假設s 是瓶子 n,m 是有容量的杯子, s可以倒入n中 ,s也可以倒入m中
n可以倒入s中 n 也可以倒入m中 m也是一樣的哦 所以就有六種情況哦。。。
下面看具體ac ** 裡面有註解哦
#include#include#includeusing namespace std;
struct node;
int s,n,m,mark[101][101][101]; ///mark標記是否以前已經有過這樣的狀態
void bfs()
else
if(!mark[p.num][p.x][p.y])
if(t.num>m-t.y) ///同理將可樂倒入m瓶子中
else
if(!mark[p.num][p.x][p.y])
}if(t.x!=0)///假設杯子n還有水
else
if(!mark[p.num][p.x][p.y])
if(t.x>s-t.num) ///倒入s杯子
else
if(!mark[p.num][p.x][p.y])
}if(t.y!=0) ///同理哦
else
if(!mark[p.num][p.x][p.y])
if(t.y>(s-t.num))
else
if(!mark[p.num][p.x][p.y])}}
cout<<"no"<>s>>n>>m,s+n+m)
{if(s%2==1) ///如果是奇數就不可以分哦 沒有0.5哦
{cout<<"no"<
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 毫公升...
HDU 1495 非常可樂 (BFS)
大家一定覺的運動以後喝可樂是一件很愜意的事情,但是seeyou卻不這麼認為。因為每次當seeyou買了可樂以後,阿牛就要求和seeyou一起分享這一瓶可樂,而且一定要喝的和seeyou一樣多。但seeyou的手中只有兩個杯子,它們的容量分別是n 毫公升和m 毫公升 可樂的體積為s s 101 毫公升...