新版食物(shiwu)
明明這次又要出去旅遊了,和上次不同的是,他這次要去宇宙探險!
我們暫且不討論他有多麼NC,他又幻想了他應該帶一些什麼東西。理所當然的,你當然要幫他計算攜帶N件物品的方案數。
他這次又準備帶一些受歡迎的食物,如:蜜桃多啦,雞塊啦,承德漢堡等等
當然,他又有一些稀奇古怪的限制:
每種食物的限制如下:
承德漢堡:偶數個
可樂:0個或1個
雞腿:0個,1個或2個
蜜桃多:奇數個
雞塊:4的倍數個
包子:0個,1個,2個或3個
土豆片炒肉:不超過兩個。
麪包:3的倍數個
注意,這裏我們懶得考慮明明對於帶的食物該怎麼搭配着吃,也認爲每種食物都是以‘個’爲單位(反正是幻想嘛),只要總數加起來是N就算一種方案。因此,對於給出的N,你需要計算出方案數,並對10007取模。
輸入樣例1
1
輸出樣例1
1
輸入樣例2
5
輸出樣例2
35
數據範圍
對於40%的數據,1<=N<=100000;
對於所有數據,1<=n<=10^500;
我們試着從母函數角度解釋(聰明的同學應該還會發現還可以用逐層作差法解決,即首先找小數據的規律)。
首先,
漢堡是2的倍數。
H(X)=1+X^2+X^4+X^6+……=1/(1-X^2);
可樂0個或1個。
G(X)=1+X=(1-X^2)/(1-X);
依此類推
雞腿:x/(1-x^3)
蜜桃多:......
雞塊:......
包子:......
土豆片炒肉:......
麪包:......
利用卷積規則:最後方案數母函數表示爲:1/(X^4+1)
而它的第項係數剛好爲C3 N+2
這個,同學們不太理解的可以參考毛傑明的論文,只需要前面一點點知識就行了。
最後記得加高精