吃糖果 HDU 1205(排列組合 抽屜原理)

2021-09-27 06:30:53 字數 1048 閱讀 6523

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

input

第一行有乙個整數t,接下來t組資料,每組資料佔2行,第一行是乙個整數n(0please use function scanf

hint

hint

這是一道排列問題,就是將若干種類的糖果按要求排列,相同種類的糖果不能相鄰。這就要考慮插孔法。先考慮數量最多的那一種糖果(假設這種糖果有n個)先間隔排好,留出n-1個空格。剩下的糖果總數大於等於n-1,就可以使得數量最多的那一種糖果不會相鄰,再將剩下的糖果按種類依次插入之前已經排好糖果的空隙中,則可以滿足題目的要求,輸出yes。如果剩下的糖果總數小於n-1,數量最多的那一種糖果一定會出現相鄰的狀況,因此輸出no。(可以手工嘗試一下)

因此,設數量最多的那一種糖果的數量為n,所有糖果總數為a,如果n-1<=a-n

.

#include

#include

#include

#include

using namespace std;

typedef

unsigned

long

long ll;

const

int mod=

1e9+7;

const

int maxx=

1e6+7;

ll a[maxx]

,sum;

intmain()

sort

(a,a+n);if

(sum-a[n-1]

-1) flag=1;

if(flag)

printf

("no\n");

else

printf

("yes\n");

}return0;

}

hdu 1205吃糖果(插孔)

題目 1146 吃糖果 時間限制 1 sec 記憶體限制 128 mb 提交 4004 解決 1795 提交 狀態 討論版 命題人 admin 題目描述 hoho,終於從speakless手上贏走了所有的糖果,是gardon吃糖果時有個特殊的癖好,就是不喜歡連續兩次吃一樣的糖果,喜歡先吃一顆a種類的...

鴿籠原理 HDU1205吃糖果

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

吃糖果 HDU 1205 抽屜原理

hoho,終於從speakless手上贏走了所有的糖果,是gardon吃糖果時有個特殊的癖好,就是不喜歡將一樣的糖果放在一起吃,喜歡先吃一種,下一次吃另一種,這樣 可是gardon不知道是否存在一種吃糖果的順序使得他能把所有糖果都吃完?請你寫個程式幫忙計算一下。第一行有乙個整數t,接下來t組資料,每...