您的位置:首页 > 其它

hdu 4920暑假多校5的1010 Matrix multiplication 矩阵

2014-08-20 12:46 288 查看
//此题卡时间卡的太死了,最后1900+过了

#include<iostream>

#include<cmath>

#include<cstring>

#include<cstdio>

#include<algorithm>

#include<string>

#include<stack>

#include<queue>

#include<map>

#define PI acos(-1.0)

typedef long long LL;

const int MAX=0xfffffff;

using namespace std;

int n;

const int mx=880;

int a[mx][mx];

int b[mx][mx];

int ans[mx][mx];

inline void scan(int &ret)

{

char c;

ret=0;

while((c=getchar())<'0'||c>'9');

while(c>='0'&&c<='9') ret=ret*10+(c-'0'),c=getchar();

}

int main( )

{

//freopen("1.txt","r",stdin);

while(scanf("%d",&n)!=EOF)

{

for(int i=1;i<=n;i++)

for(int j=1;j<=n;j++)

{

scan(a[i][j]);

a[i][j]%=3;

}

for(int i=1;i<=n;i++)

for(int j=1;j<=n;j++)

{

scan(b[i][j]);

b[i][j]%=3;

}

memset(ans,0,sizeof(ans)); //写乘函数就超市

for(int i=1;i<=n;i++)

for(int j=1;j<=n;j++)

if(a[i][j])

for(int k=1;k<=n;k++)

ans[i][k]=(ans[i][k]+a[i][j]*b[j][k])%3;

for(int i=1;i<=n;i++)

for(int j=1;j<=n;j++)

if(j==n) printf("%d\n",ans[i][j]);

else printf("%d ",ans[i][j]);

}

return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: