每种食物的生成函数

汉堡: $\begin {split}1+x^2+x^4+\cdots=\frac 1{1-x^2} \end {split}$
可乐: $\begin {split}1+x=\frac{1-x^2}{1-x}\end {split}$
鸡腿: $\begin {split}1+x+x^2=\frac{1-x^3}{1-x} \end {split}$
蜜桃多: $\begin {split}x+x^3+x^5+\cdots=\frac x{1-x^2} \end {split}$
鸡块: $\begin {split}1+x^4+x^8+\cdots=\frac 1{1-x^4} \end {split}$
包子: $\begin {split}1+x+x^2+x^3=\frac{1-x^4}{1-x} \end {split}$
土豆片炒肉: $\begin {split}1+x=\frac{1-x^2}{1-x} \end {split}$
面包: $\begin {split}1+x^3+x^6+\cdots=\frac 1{1-x^3} \end {split}$

乘在一起得到: $\begin {split}f(x)=\frac x{(1-x)^4}=x\cdot (1-x)^{-4} \end {split}$
带入广义二项式定理得 $\begin {split} f(x)=x\cdot \sum_{i=0}^\infty C_{i+3}^i \cdot x^i \end {split}$
当$\begin {split}i=n-1 \end{split}$时第$n-1$项为 $\begin {split} x\cdot C_{n+2}^n \cdot x^n=C_{n+2}^3\cdot x^n\end{split}$
所以答案就为$\begin {split} ans=\frac{n(n+1)(n+2)}6 \end {split}$

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#define mod 10007
#define inv6 1668
using namespace std;
inline int GetInt()
{
int ch,num=0;
while(ch=getchar())
{
if(ch>='0'&&ch<='9')break;
}
while(ch>='0'&&ch<='9')
{
num=(num*10+ch-'0')%mod;
ch=getchar();
}
return num;
}
int main(void)
{
int n=GetInt();
printf("%d\n",n*(n+1)%mod*(n+2)%mod*inv6%mod);
return 0;
}