矩阵乘法

Time Limit:1000MS  Memory Limit:65536K

Total Submit:19 Accepted:7

Description

矩阵乘法是线性代数中最基本的运算之一。 

给定三个矩阵 A\B\C 请编写程序判断A*B = C 是否成立。

Input

输入包含多组数据。每组数据的格式如下: 

第一行包括两个整数p 和q,表示矩阵A 的大小。后继p 行,每行有q 个整数,表示矩阵A 

的元素内容。 

紧接着用相同的格式给出矩阵B 和矩阵C。 

输入数据的最后一行是两个0,你的程序处理到这里时就应该退出了。 

输入数据中所有的整数绝对值都不超过100。

Output

对每一组输入数据,你的程序都要输出单独一行字符。 

如果 A*B=C成立则输出”Yes” 

如果 A 和B 根本不能相乘,或A*B=C不成立,则输出”No”。注意大小写。

Sample Input

2 3
1 2 3
4 5 6
3 2
1 2
3 4
5 6
2 2
22 28
49 64
1 2
1 2
2 1
2
1
2 2
2 4
1 2
1 2
1 2
1 1
1
1 1
1 0 0

Sample Output

Yes
No
No

Hint

此题考察线性代数基本概念,请参阅线性代数教材。

Source

2009中科大ACM校赛-普及版

[Submit]  
[Go Back]   [Status]  
[Discuss]

#include <stdio.h>
#include <string.h>
#define MAXN 101 int a[MAXN][MAXN], b[MAXN][MAXN], c[MAXN][MAXN], d[MAXN][MAXN]; int main()
{
int i, j, m, n, x, y, u, v, p;
while ( ~scanf("%d%d", &m, &n))
{
if ( m == 0 && n == 0 ) break;
for ( i=0; i<m; i++ ) {
for ( j=0; j<n; j++ ) {
scanf("%d", &a[i][j]);
}
}
scanf("%d%d", &x, &y);
for ( i=0; i<x; i++ ) {
for ( j=0; j<y; j++ ) {
scanf("%d", &b[i][j]);
}
}
scanf("%d%d", &u, &v);
for ( i=0; i<u; i++ ) {
for ( j=0; j<v; j++ ) {
scanf("%d", &c[i][j]);
}
}
if ( n != x || m != u || v != y ) {
puts("No");
}
else { for ( i=0; i<u; i++ ) {
for ( j=0; j<v; j++ ) {
d[i][j] = 0;
for ( p=0; p<n; p++ ) {
d[i][j] += a[i][p] * b[p][j];
}
if ( d[i][j] != c[i][j] ) break;
}
}
if ( i == u && j == v ) puts("Yes");
else puts("No");
}
} return 0;
}

akoj-1055-矩阵乘法的更多相关文章

  1. *HDU2254 矩阵乘法

    奥运 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submissi ...

  2. *HDU 1757 矩阵乘法

    A Simple Math Problem Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Ot ...

  3. CH Round #30 摆花[矩阵乘法]

    摆花 CH Round #30 - 清明欢乐赛 背景及描述 艺术馆门前将摆出许多花,一共有n个位置排成一排,每个位置可以摆花也可以不摆花.有些花如果摆在相邻的位置(隔着一个空的位置不算相邻),就不好看 ...

  4. POJ3070 Fibonacci[矩阵乘法]

    Fibonacci Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 13677   Accepted: 9697 Descri ...

  5. bzoj 2738 矩阵乘法

    其实这题跟矩阵乘法没有任何卵关系,直接整体二分,用二维树状数组维护(刚刚学会>_<),复杂度好像有点爆炸(好像有十几亿不知道是不是算错了),但我们不能怂啊23333. #include&l ...

  6. 【BZOJ-2476】战场的数目 矩阵乘法 + 递推

    2476: 战场的数目 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 58  Solved: 38[Submit][Status][Discuss] D ...

  7. 【BZOJ-1898】Swamp 沼泽鳄鱼 矩阵乘法

    1898: [Zjoi2005]Swamp 沼泽鳄鱼 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1012  Solved: 566[Submit][S ...

  8. 【Codeforces718C】Sasha and Array 线段树 + 矩阵乘法

    C. Sasha and Array time limit per test:5 seconds memory limit per test:256 megabytes input:standard ...

  9. 矩阵乘法的MapReduce实现

    对于任意矩阵M和N,若矩阵M的列数等于矩阵N的行数,则记M和N的乘积为P=M*N,其中mik 记做矩阵M的第i行和第k列,nkj记做矩阵N的第k行和第j列,则矩阵P中,第i行第j列的元素可表示为公式( ...

  10. 矩阵乘法&矩阵快速幂&矩阵快速幂解决线性递推式

    矩阵乘法,顾名思义矩阵与矩阵相乘, 两矩阵可相乘的前提:第一个矩阵的行与第二个矩阵的列相等 相乘原则: a b     *     A B   =   a*A+b*C  a*c+b*D c d     ...

随机推荐

  1. Notepad++中过滤掉的正则方式

    2 => 'ashadv'3 => 'aogro'4 => 'aogs'5 => 'ashamw'6 => 'arc'8 => 'gtsatq'9 => 'b ...

  2. 【Android Developers Training】 108. 使用模拟定位进行测试

    注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...

  3. Python3中文件处理

    1.txt,xls,doc等文件的使用 f=open("filename","w")   打开一个用于写入的文件,要写入内容时使用f.write("内 ...

  4. C# selecd,new,virtual,abstract与override

    本文大部分内容摘自  <.NET开发专家·亮剑.NET : .NET深入体验与实战精要> 博主只是搬运工,不喜勿喷. 关于虚方法,抽象类这一部分一直不是太清楚,目前的工作中也接触不到这些. ...

  5. SerializableObj

    package JBJADV003; import java.io.*; public class SerializableObj { /** * @param args * @throws IOEx ...

  6. 【JS小技巧】JavaScript 函数用作对象的隐藏问题

    用户反馈 @消失的键盘 在论坛反馈了一个问题,在 AppBoxMvc 中的 Title 模型中,如果将 Name 属性改名为小写的 name 属性,就会报错: 因为这是一个 ASP.NET MVC 的 ...

  7. JVM常见垃圾回收算法

    jdk1.7.0_79 众所周知,Java是一门不用程序员手动管理内存的语言,全靠JVM自动管理内存,既然是自动管理,那必然有一个垃圾内存的回收机制或者回收算法.本文将介绍几种常见的垃圾回收(下文简称 ...

  8. Java--回调接口

    回调接口: 我们都知道,一个线程在运行中,遇到一个耗时操作(方法)时,会开启另外一个线程,即所谓 -- 异步 .java中 回调接口 也必然应用与异步加载. 所谓 回调接口 ,也就是线程运行中 遇到一 ...

  9. babel如此简单

    凡是看到这个标题点进来的同学,相信对babel都有了一定的了解.babel使用起来很简单,简单到都没有必要写一篇文章去介绍,直接看看官方文档就可以.所以我也在怀疑到底该不该写这篇文章.想来想去还是决定 ...

  10. 《javascript设计模式与开发实践》读书笔记之函数,this,闭包

    一.函数基本理论 function compare(val1,val2){ return val1 - val2; }var result = compare(5,10); 1,函数的定义没什么意义, ...