LibreOJ #100. 矩阵乘法

内存限制:256 MiB 时间限制:2000 ms 标准输入输出
题目类型:传统 评测方式:文本比较
上传者: 匿名
 
 

 

 

模版

以前一直不过样例原来是读入优化没写负数。。

屠龙宝刀点击就送

#include <cstdio>
#include <cctype>
const int Mod = 1e9 + 7;
typedef long long LL;
#define N 505
#define rep(a,b,c) for (int i = a; i <= b; i+=c)
#define Rep(a,b,c) for (int j = a; j <= b; j+=c)
#define REP(a,b,c) for (int k = a; k <= b; k+=c)

inline void read(LL &x)
{
    bool f = 0;register char ch = getchar();
    for (x = 0; !isdigit(ch); ch = getchar()) if (ch == '-') f = 1;
    for (; isdigit(ch); x = x * 10 + ch - '0', ch = getchar()); 
    x = f ? (-x) : x;
}
int n, p, m;
LL A[N][N], B[N][N], C[N][N];
int Main()
{
    scanf("%d%d%d", &n, &p, &m);
    rep(1,n,1)
     Rep(1,p,1)
      read(A[i][j]);
    rep(1,p,1)
     Rep(1,m,1)
      read(B[i][j]);
     rep(1,n,1) 
      Rep(1,m,1)
      {
          REP(1,p,1)
          C[i][j] = (C[i][j] + A[i][k] * B[k][j]) % Mod;
      }
    rep(1,n,1)
     Rep(1,m,1)
     j == m ? printf("%lld\n",(C[i][j] + Mod) % Mod) : printf("%lld ",(C[i][j] + Mod) % Mod);
    return 0;
}
int sb = Main();
int main(int argc, char *argv[]) {;}

 

posted @ 2017-10-08 21:56  杀猪状元  阅读(266)  评论(0编辑  收藏  举报