HDU 1495 非常可樂(bfs)

2021-10-24 08:59:23 字數 812 閱讀 1597

一瓶體積為s毫公升的可樂,乙個體積n 毫公升和乙個體積m 毫公升 的杯子(滿足s=n+

m),要求分出兩杯體積相等的可樂,問倒可樂的最少的次數,如果不能輸出"no"

最少次數,肯定bfs廣搜,先特判s是否被2整除,把裝可樂的瓶子看作是乙個體積為s的杯子,就是三個杯子兩兩組合,一共六種情況,在分為可以全到出,或者剩下一部分,每次操作次數+1,最後滿足只要有兩杯相同體積的可樂就可以

#include

#include

typedef

long

long ll;

using

namespace std;

const

int n =

105;

int v[3]

, vis[n]

[n][n]

, ans;

struct node };

int fx=

;int fy=

;void

bfs()if

(cnt >=2)

for(

int i =

0; i <6;

++i)

elseif(

!vis[f.v[0]

][f.v[1]

][f.v[2]

])}}

}printf

("no\n");

}int

main

(void

)else

printf

("no\n");

}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 毫公升...