推倒是重点:
由s(n) 推出 s(n) - 1;
得s(n) 等于一个4项式 所以开4*4的矩阵
1 x^2 y^2 2xy
0 x^2 y^2 2xy
0 1 0 0
0 x 0 y
需要注意的是当n<2时
由s(n) 推出 s(n) - 1;
得s(n) 等于一个4项式 所以开4*4的矩阵
1 x^2 y^2 2xy
0 x^2 y^2 2xy
0 1 0 0
0 x 0 y
需要注意的是当n<2时
#include
#include
#define ff(i,n) for(int i=0;i
>=1)
{
if(n&1)
t=t*A;
A=A*A;
}
return t;
}
int main()
{
int n,x,y;
while(scanf("%d%d%d",&n,&x,&y)!=EOF)
{
init(x,y);
if(n<2)
{
printf("%d\n",n+1);
continue;
}
A=power(n-1);
int sum=A.m[0][0];
ff(i,4)
{
sum+=A.m[0][i];
sum%=mod;
}
printf("%d\n",sum);
}
return 0;
}