版权声明:随意转载哦......但还是请注明出处吧: https://blog.csdn.net/dreaming__ldx/article/details/85405426
传送门
生成函数入门题。
按照题意构造函数:
对于限定必须是出现偶数次的颜色:
对于无限定的颜色:
因此最终的生成函数
而我们要求的就是
的系数。
根据泰勒展开式:
的展开式中
对应的系数是
因此出现的方案数为
由于每种方案有
种排列方式,因此最终答案就是
代码:
#include<iostream>
#include<cstdio>
using namespace std;
const int mod=10007;
int T,n;
inline int ksm(int a,int p){int ret=1;for(;p;p>>=1,a=a*a%mod)if(p&1)ret=ret*a%mod;return ret;}
int main(){
scanf("%d",&T);
while(T--)scanf("%d",&n),cout<<((ksm(2,n+1)+ksm(4,n))%mod)*2502%mod<<'\n';
return 0;
}