这周的前面的时间又去补了上周末的几道题,先是补了一道F题,题目的大概意思就是给出n,m,让我们求cos(nx)的展开式的(cos(x))^m项的系数。用的数学方面的知识,泰勒展开,从网上看到的公式推导
知道推导公式后就能计算了
while (scanf("%lld%lld",&n,&k)!=EOF)
{
if (n<k || (n+k)%2==1)
{
printf("0\n");
continue;
}
ans=n%mo;//
for (i=n-k+2;i<=n+k-2;i+=2) ans=ans*i%mo;
for (i=2;i<=k;i++) ans=ans*ni(i,mo-2)%mo;
if (k==0) ans=ans*ni(n%mo,mo-2)%mo;
if ((n-k)/2%2==1) ans=mo-ans;
printf("%lld\n",ans);
}
上周做的第一道题,套公式当时做的时候不行,后来发现是c++的局限,由于高精度对double的范围没有,比完赛后补题的时候才知道,别人使用java做的,自动高精度了,学到了c++的局限。