struct node
{
int a[MAXN+10][MAXN+10];
};
node operator *(const node &x,const node &y)
{
int i,j,k;
node t;
memset(t.a,0,sizeof(t.a));
for(i=0;i<n;i++)
for(j=0;j<n;j++)
for(k=0;k<n;k++)
t.a[i][k]=(t.a[i][k]+x.a[i][j]*y.a[j][k])%mod;
return t;
}
node pow_mod(node x,int zhi)
{
int i;
node di=x,t;
memset(t.a,0,sizeof(t.a));
for(i=0;i<n;i++)
t.a[i][i]=1;
while(zhi)
{
if(zhi%2==1)
t=t*di;
di=di*di;
zhi/=2;
}
return t;
}
[模板]矩阵加速
最新推荐文章于 2024-07-22 10:02:43 发布