struct mat
{
int n,m;
int a[maxn][maxn];
void zero()
{
memset(a,0,sizeof(a));
}
void one()
{
zero();
for(int i=1;i<=n;i++)
{
a[i][i]=i;
}
}
void resize(int x,int y)
{
n=x;
m=y;
}
mat operator+(const mat&A)const
{
mat res;
res.resize(n,m);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
res.a[i][j]=(a[i][j]+A.a[i][j])%mod;
}
}
return res;
}
mat operator-(const mat&A)const
{
mat res;
res.resize(n,m);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;i++)
{
res.a[i][j]=(a[i][j]-A.a[i][j])%mod;
}
}
return res;
}
mat operator*(const mat&A)const
{
mat res;
res.resize(n,A.m);
res.zero();
for(int i=1;i<=n;i++)
{
for(int j=1;j<=A.m;j++)
{
for(int k=1;k<=m;k++)
{
res.a[i][j]=(a[i][k]*A.a[k][j]+res.a[i][j]);
}
}
}
return res;
}
void out()
{
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cout <<a[i][j]<<" ";
}
cout <<endl;
}
}
};
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。