bzoj 3028: 食物
吐槽??(这个题我连一开始幼儿园级别的化简式子有搞错了2333虚)
这貌似应该叫(指数型)生成函数。
然后最后化简就剩下一个x*(1-x)^(-4),把这个东西展开,第n项的系数就是答案了。
然而怎么展开呢??
(以下部分纯属本蒟蒻从众神犇题解上扒下来用来装B用233)
用麦克劳林展开,我记得百度上说麦克劳林展开是泰勒公式的特殊情况,(其实就是x=0)
然后根据这个展开式,这个系数就是x*(1-x)^(-4)这个东西的 n 阶导数0处取值再除个阶乘,
然后问题就变成求阶乘了,然后这个两个函数乘起来求高阶导数有个叫布莱尼此公式的东西
然后求出导数来,发现只剩下两项。
再把x=0带进去,就剩一项辣:n*(n+2)!/3!*1
再除掉n!,剩下的东西是C(n+2,3)
GG
剩下的事情就是乱搞和吐槽了
1 #include<bits/stdc++.h> 2 using namespace std; 3 4 const int mod=10007; 5 const int maxn=505; 6 7 int ksm(int x, int p) 8 { 9 int sum=1; 10 for (;p;p>>=1,x=x*x%mod) 11 if (p&1) sum=sum*x%mod; 12 return sum; 13 } 14 15 char s[maxn]; 16 int n; 17 18 int main() 19 { 20 scanf("%s",s+1); 21 for (int i=1; s[i]; i++) 22 n=(n*10+(s[i]-'0'))%mod; 23 printf("%d\n",(n*(n+1)%mod*(n+2)%mod*ksm(6,mod-2)%mod)%mod); 24 return 0; 25 }