矩阵相乘

来源:互联网 发布:在淘宝上买手机可靠吗 编辑:程序博客网 时间:2024/05/18 17:01
struct node { int mp[N][N]; node () { rep(i,N) rep(j,N)  mp[i][j]=0; } node (int mp[N][N]) { rep(i,N)rep(j,N)this->mp[i][j]=mp[i][j]; } node operator *(node &a) { node c; rep(i,N) rep(j,N)    rep(k,N)    { c.mp[i][j]+=(mp[i][k]*a.mp[k][j])%(mod-1);    c.mp[i][j]%=(mod-1);}     return c; } }; node mul(node b,int n) { if(n==1) return b; node a=mul(b,n/2); if(n%2==0) return a*a; else return b*a*a; }