solution-code4763

lolifamily

每种食物的生成函数

汉堡:1+x2+x4+=11x2

可乐:1+x=1x21x

鸡腿:1+x+x2=1x31x

蜜桃多:x+x3+x5+=x1x2

鸡块:1+x4+x8+=11x4

包子:1+x+x2+x3=1x41x

土豆片炒肉:1+x=1x21x

面包:1+x3+x6+=11x3

乘在一起得到:f(x)=x(1x)4=x(1x)4

带入广义二项式定理得f(x)=xi=0Ci+3ixi

i=n1时第n1项为xCn+2nxn=Cn+23xn

所以答案就为ans=n(n+1)(n+2)6

#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;
}