题目大意:求长度为
n
的DNA单链,满足
去学了下指数生成函数……
设函数
那么两种元素的组合就是
A(x)∗B(x)
理由很简单,我们发现
Aixii!∗Bjxjj!=Ai∗Bj∗(i+j)!i!∗j!xi+j(i+j)!
组合数就这样被搞出来了
那么对于此题,
A
和
而
C
和
故答案函数
F(x)=e2x(ex+e−x2)2
=e4x+2e2x+14
因此
n
次项系数为
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define MOD 400
using namespace std;
unsigned long long n;
int Quick_Power(int x,unsigned long long y)
{
int re=1;
while(y)
{
if(y&1) (re*=x)%=MOD;
(x*=x)%=MOD; y>>=1;
}
return re;
}
int main()
{
int T;
while(cin>>T,T)
{
int cnt=0;
for(;T;T--)
{
cin>>n;
printf("Case %d: ",++cnt);
cout<<(Quick_Power(4,n)+2*Quick_Power(2,n))%MOD/4<<endl;
}
puts("");
}
return 0;
}