//矩阵快速幂
struct matrix
{
int a[maxn][maxn]
}origin,res;
matrix mult(matrix x,matrix y)
{
matrix temp;
memset(temp.a,0,sizeof(temp.a));
for(int i = 1;i <= maxn;i ++)
for(int j = 1;j <= maxn;j ++)
for(int k = 1;k <= maxn;k ++)
{
temp.a[i][j] += x.a[i][k]*y.a[k][j];
}
return temp;
}
void calc(int n)
{
while(n)
{
if(n&1)
res = mult(res,origin);
n >>= 1;
origin = mult(origin,origin);
}
}
矩阵快速幂模板
最新推荐文章于 2022-08-27 21:03:02 发布