用结构体重载运算符把:
struct maxtrix{
ll s[5][5];
int l;
maxtrix()
{
memset(s,0,sizeof(s));
}
maxtrix(int x)
{
l=x;
memset(s,0,sizeof(s));
for(int i=0;is[i][i]=1LL;
}
void read(int k)
{
l=k;
for(int i=0;ifor(int j=0;j cin>>s[i][j];
}
maxtrix operator*(const maxtrix &r)
{
maxtrix ret;
ret.l=l;
for(int i=0;ifor(int j=0;j for(int k=0;k (ret.s[i][j]+=s[i][k]*r.s[k][j])%=mod;
return ret;
}
maxtrix &operator*=(const maxtrix &r)
{
*this=*this*r;
return *this;
}
void print()
{
for(int i=0;i{
for(int j=0;jcout< cout<}
}
};
就是二维数组的相乘