hdu 1495 非常可樂 bfs

2021-06-13 23:47:33 字數 889 閱讀 6107

題目 

剛開始那做這個題   怎麼也想不出為什麼可以用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 毫公升...