牛客程式設計巔峰賽 挑選方案問題(生成函式)

2021-10-12 16:39:39 字數 805 閱讀 1852

自助餐廳裡有5個盤子,裡面裝的都是麵包。

第1個盤子裡有無限個麵包;

第2個盤子裡只有1個麵包;

第3個盤子裡只有4個麵包;

第4個盤子裡也有無限個麵包,但必須兩個兩個地拿;

第5個盤子裡也有無限個麵包,但必須5個5個地拿;

給定正整數n,求有多少種正好拿出n個麵包的方案。

方案a和方案b不同,當且僅當方案a存在從某個盤子裡拿出麵包的數量與方案b中對應盤子拿出的數量不同。

示例1

1
3
有3種方案:

在第乙個盤子拿乙個。

在第二個盤子拿乙個。

在第三個盤子拿乙個。

示例2

2
6
有6種方案:

在第乙個盤子拿2個。

在第乙個盤子拿1個,第二個盤子拿1個。

在第乙個盤子拿1個,第三個盤子拿1個。

在第二個盤子拿1個,第三個盤子拿1個。

在第三個盤子拿2個。

在第四個盤子拿2個。

(請注意由於第四個盤子裡只能兩個兩個拿,所以必須拿偶數個)

n<=10^9

資料僅包含乙個正整數n

輸出乙個正整數表示答案。

思路:該題在比賽時我是通過打表找規律的,而正確的做法是使用生成函式的一般做法,具體過程討論區已有詳解,這裡直接貼出大佬的推論:

牛客程式設計巔峰賽 共鳴問題(貪心)

現在有n個音符和m對共鳴關係,編號為1 n,每個音符自己有乙個奏響時的優美程度,共鳴關係 x,y,z 表示音符x和y同時奏響的額外優美程度是z,同時不奏響則為 z,其他情況為0。音符可以選擇奏響或者不奏響,不奏響的音符沒有優美程度。我們想知道最大的優美程度和是多少,我們不需要知道具體是哪些音符被奏響...

牛客程式設計巔峰賽S1 9

a.牛牛的字元反轉 題目描述 牛牛酷愛迴圈右移操作,但是牛牛的電腦暫存器壞掉了,無法實現正常的迴圈右移操作,只能實現區間反轉操作,現在牛牛有乙個長度為n的字串,他想進行迴圈右移k位的操作,你能告訴牛牛,他最少對這個字串進行幾次區間反轉操作能實現迴圈右移k位呢。反轉操作指字串某一區間 l,r 內的字元...

牛客 挑選方案問題(排列組合)

自助餐廳裡有5個盤子,裡面裝的都是麵包。第1個盤子裡有無限個麵包 第2個盤子裡只有1個麵包 第3個盤子裡只有4個麵包 第4個盤子裡也有無限個麵包,但必須兩個兩個地拿 第5個盤子裡也有無限個麵包,但必須5個5個地拿 給定正整數n,求有多少種正好拿出n個麵包的方案。方案a和方案b不同,當且僅當方案a存在...