Time Limit: 5 Sec  Memory Limit: 512 MB

给出三个行数和列数均为N的矩阵A、B、C,判断A*B=C是否成立。

题目可能包含若干组数据。
    对于每组数据,第一行一个数N,接下来给出三个N*N的矩阵,依次为A、B、C三个矩阵。

对于每组数据,若A*B=C成立,则输出Yes,否则No。每个答案占一行。

Sample Input

1
2
2
100

Sample Output

No

HINT

对于90%的数据,N不超过100;

对于100%的数据,N不超过1000,矩阵中的数字大于等于0小于1000,数据组数不超过5组。


poj原题......就是改了下数据范围

详见:blog:poj3318 Matrix Multiplication

根据这题的数据范围$O(n^2),n<=1000$,每组大概判断17次,错误率$1/2^{17}$

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cstdlib>
#define rint register int
using namespace std;
#define N 1005
int i,j,k,n,a[N][N],b[N][N],c[N][N],d[N],e[N],f[N];
int main(){
srand();
while(scanf("%d",&n)!=EOF){
for(i=;i<=n;++i)
for(j=;j<=n;++j)
scanf("%d",&a[i][j]);
for(i=;i<=n;++i)
for(j=;j<=n;++j)
scanf("%d",&b[i][j]);
for(i=;i<=n;++i)
for(j=;j<=n;++j)
scanf("%d",&c[i][j]);
for(k=;k<=;++k){
for(i=;i<=n;++i) d[i]=rand()&;
for(e[i=]=;i<=n;e[++i]=)
for(j=;j<=n;++j)
e[i]+=c[i][j]*d[j];
for(f[i=]=;i<=n;f[++i]=)
for(j=;j<=n;++j)
f[i]+=b[i][j]*d[j];
for(i=;i<=n;++i) d[i]=f[i];
for(f[i=]=;i<=n;f[++i]=)
for(j=;j<=n;++j)
f[i]+=a[i][j]*d[j];
for(i=;e[i]==f[i]&&i<=n;++i);
if(i<=n) break;
}puts(k>?"Yes":"No");
}return ;
}

bzoj2396 神奇的矩阵(随机化)的更多相关文章

  1. bzoj2396: 神奇的矩阵

    与51nod1140一样.不过这题是多组数据的...坑.... #include<cstdio> #include<cstring> #include<cctype> ...

  2. bzoj2396: 神奇的矩阵(矩阵乘法+随机化)

    这题n三方显然会GG... 运用矩阵乘法的性质A*B*R=A*(B*R)=C*R,于是随机化出一个一列的R,就可以把复杂度降低成n方...大概率是不会错的 #include<iostream&g ...

  3. 【bzoj2396】神奇的矩阵 随机化

    题目描述 给出三个行数和列数均为N的矩阵A.B.C,判断A*B=C是否成立. 输入 题目可能包含若干组数据.对于每组数据,第一行一个数N,接下来给出三个N*N的矩阵,依次为A.B.C三个矩阵. 输出 ...

  4. BZOJ2396 神奇的矩阵 【随机化 + 矩乘】

    题目链接 BZOJ2396 题解 一种快速判断两个矩阵是否相等的方法: 对于两个\(n * n\)矩阵,两边同时乘一个\(n * 1\)的随机矩阵,如果结果相等,那么有很大概率两个矩阵相等 如果左边是 ...

  5. [Swust OJ 1126]--神奇的矩阵(BFS,预处理,打表)

    题目链接:http://acm.swust.edu.cn/problem/1126/ Time limit(ms): 1000 Memory limit(kb): 65535 上一周里,患有XX症的哈 ...

  6. 神奇的矩阵 NOI模拟题

    神奇的矩阵 题目大意 有一个矩阵\(A\),第一行是给出的,接下来第\(x\)行,第\(y\)个元素的值为数字\(A_{x-1,y}\)在\(\{A_{x-1,1},A_{x-1,2},A_{x-1, ...

  7. [XJOI NOI2015模拟题13] A 神奇的矩阵 【分块】

    题目链接:XJOI NOI2015-13 A 题目分析 首先,题目定义的这种矩阵有一个神奇的性质,第 4 行与第 2 行相同,于是第 5 行也就与第 3 行相同,后面的也是一样. 因此矩阵可以看做只有 ...

  8. 数学&模拟:随机化-矩阵随机化

    BZOJ2396 给出三个行数和列数均为N的矩阵A.B.C,判断A*B=C是否成立 随机生成一个N乘1的矩阵R 然后判断A*B*R是否等于C*R,而前者相当于A*(B*R) 与后者一样都可以在O(N2 ...

  9. D.Starry的神奇魔法(矩阵快速幂)

    /*D: Starry的神奇魔法 Time Limit: 1 s      Memory Limit: 128 MB Submit My Status Problem Description     ...

随机推荐

  1. Katalon Recorder初探

    缘由 最近工作中,有大量web页面上的重复操作,实在麻烦,就想利用selenium ide录制出一些操作集合,以便复用.新版本的selenium ide 3目前只支持firefox最新的版本,而且代码 ...

  2. linux 调整内核优化

    所谓内核优化,主要是在 linux 中针对业务服务应用而进行的系统内核参数优化,优化并无特殊的 标准,下面以常见生产环境 linux 的内核优化为例讲解,仅供大家参考: 内核调优 #vi /etc/s ...

  3. linux ab压力测试

    1.安装 yum -y install httpd-tools 2.检测版本 ab -V 3.常用 ab -c -n 127.0.0.1/index.php #同时处理100个请求并运行10次inde ...

  4. thinkphp 模板变量输出替换和赋值

    一.变量输出的几个方法 <?php namespace app\index\controller; use http\Params; use think\Config; use think\Co ...

  5. tar解压命令

    解压 tar –xvf file.tar //解压 tar包 tar -xzvf file.tar.gz //解压tar.gz tar -xjvf file.tar.bz2 //解压 tar.bz2 ...

  6. 【leetcode】1089. Duplicate Zeros

    题目如下: Given a fixed length array arr of integers, duplicate each occurrence of zero, shifting the re ...

  7. Python配置模块:configparser参数含义

    https://blog.csdn.net/CoderPai/article/details/80420698

  8. shell学习----正则表达式

    在使用sed和gawk时如果能够熟练的使用正则表达式,可以准确的过滤到自己需要的信息 Linux中,有两种流行的正则表达式引擎: POSIX基础正则表达式,BRE引擎 POSIX扩展正则表达式,ERE ...

  9. 【Swagger2】SpringBoot整合swagger2

    Swagger 简介 Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务.总体目标是使客户端和文件系统作为服务器以同样的速度来更新.文件的方法, ...

  10. JavaScript学习第一篇

    在学习之前让我们了解了解JavaScript的由来 Javascript是一种web技术,最初起名叫LiveScript,它是Netscape开发出来一种脚本语言,其目的是为了扩展基本的Html的功能 ...