要注意題目的意思,由樣例 4 1 3 答案是3 ,可以推測,題目是要求將可樂分為兩等份放在兩個容器中。
由於當s為奇數時一定無解,所以只有當s為偶數時進行處理。可以使用二維陣列進行判重,因為可樂總數是確定的,知道兩個容器中的可樂量就能知道第三個容器中的可樂量。
實現在三個容器中倒可樂的方式有點複雜,還好不久之前看紫書時剛好記下來乙個方法。要注意理解。
ac**如下:
#include
#include
#include
#include
using namespace std;
int vis[
110]
[110
],cup[3]
;struct node
//過載運算子,要有返回值,不然在一些oj上會報error};
intbfs()
}}}return0;
}int
main()
//奇數不處理
int ans=
bfs();
if(ans)
printf
("%d\n"
,ans)
;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 毫公升...