hdu1205吃糖果 鴿巢原理

2021-07-10 16:34:14 字數 363 閱讀 9077

鴿巢原理:25只鴿子飛進了24個鴿巢,則至少有乙個鴿巢有兩個鴿子。

這道題就是找出數量最大的那堆糖果,然後判斷sum - max(代表總量 - 最大堆數量,也就是剩餘糖果的數量) 是否大於 max - 1,如果大於的話,代表可以吃完.因為數量為max的糖果有max - 1 個空,其他種類小於max - 1的糖果,可以插在max - 1個空的任意空裡面。

**:

#include int main()

if(sum - max >= max - 1)

printf("yes\n");

else

printf("no\n");

}return 0;

}

hdu 1205 吃糖果(鴿巢原理)

鴿巢原理 1.把某種糖果看做隔板,如果某種糖果有n個,那麼就有n 1塊區域,至少需要n 1塊其他種糖果才能使得所有隔板不挨在一塊.也就是說能吃完這種糖果.至少需要其他種類糖果n 1塊.鴿巢原理 2.數量最多的糖果 隔板 可以構造最多的空間,如果這種糖果有maxn個.那麼需要maxn 1個其他種糖果....

HDU 1205 吃糖果(鴿巢原理)

思路 1.記最多的糖果為ans,剩下糖果總數為sum 2.如果想將ans個糖果隔開,我們至少需要ans 1個其它糖果,因此sum如果小於ans 1則不行 3.如果sum大於等於ans 1,將ans個糖果隔開的區間認為是乙個空間,我們可以在放滿這ans 1個空間的基礎上,其餘每個糖果最多放在乙個空間,...

HDU 1205 吃糖果 鴿巢原理 8月1

吃糖果 problem description hoho,終於從speakless手上贏走了所有的糖果,是gardon吃糖果時有個特殊的癖好,就是不喜歡將一樣的糖果放在一起吃,喜歡先吃一種,下一次吃另一種,這樣 可是gardon不知道是否存在一種吃糖果的順序使得他能把所有糖果都吃完?請你寫個程式幫忙...