struct Mat { LL m[101][101]; };//存储结构体 Mat a,e; //a是输入的矩阵,e是输出的矩阵 Mat Mul(Mat x,Mat y) { Mat c; for(int i=1;i<=n;++i) for(int j=1;j<=n;++j) c.m[i][j] = 0; for(int i=1;i<=n;++i) for(int j=1;j<=n;++j) for(int k=1;k<=n;++k) c.m[i][j] = c.m[i][j]%mod + x.m[i][k]*y.m[k][j]%mod; return c; } Mat pow(Mat x,LL y)//矩阵快速幂 { Mat ans = e; while(y){ if(y&1) ans = Mul(ans,x); x = Mul(x,x); y>>=1; } return ans; }