bzoj2396: 神奇的矩阵
与51nod1140一样。不过这题是多组数据的。。。坑。。。。
#include<cstdio>
#include<cstring>
#include<cctype>
#include<algorithm>
#include<ctime>
using namespace std;
#define rep(i,s,t) for(int i=s;i<=t;i++)
#define dwn(i,s,t) for(int i=s;i>=t;i--)
#define clr(x,c) memset(x,c,sizeof(x))
#define ll long long
int read(){
int x=0,f=1;char c=getchar();
while(!isdigit(c)){
if(c=='-') f=-1;c=getchar();
}
while(isdigit(c)) x=x*10+c-'0',c=getchar();
return x*f;
}
const int nmax=1005;
ll r[nmax],ra[nmax],rb[nmax],rc[nmax],a[nmax][nmax],b[nmax][nmax],c[nmax][nmax];
int main(){
srand(1000007);
int n;bool flag;
while(scanf("%d",&n)==1){
rep(i,1,n) rep(j,1,n) a[i][j]=read();
rep(i,1,n) rep(j,1,n) b[i][j]=read();
rep(i,1,n) rep(j,1,n) c[i][j]=read();
rep(i,1,n) r[i]=rand()%1000,ra[i]=rb[i]=rc[i]=0;
rep(j,1,n) rep(k,1,n) ra[j]+=r[k]*a[k][j];
rep(j,1,n) rep(k,1,n) rb[j]+=ra[k]*b[k][j];
rep(j,1,n) rep(k,1,n) rc[j]+=r[k]*c[k][j];
flag=1;
rep(i,1,n) if(rc[i]!=rb[i]){
printf("No\n");flag=0;
}
if(flag) printf("Yes\n");
}
return 0;
}
2396: 神奇的矩阵
Time Limit: 5 Sec Memory Limit: 512 MB
Submit:
1042 Solved: 298
[Submit][Status][Discuss]
Description
给出三个行数和列数均为N的矩阵A、B、C,判断A*B=C是否成立。
Input
题目可能包含若干组数据。
对于每组数据,第一行一个数N,接下来给出三个N*N的矩阵,依次为A、B、C三个矩阵。
Output
对于每组数据,若A*B=C成立,则输出Yes,否则No。每个答案占一行。
Sample Input
2
2
100
Sample Output
HINT
对于90%的数据,N不超过100;
对于100%的数据,N不超过1000,矩阵中的数字大于等于0小于1000,数据组数不超过5组。
Source
bzoj2396: 神奇的矩阵的更多相关文章
- BZOJ2396 神奇的矩阵 【随机化 + 矩乘】
题目链接 BZOJ2396 题解 一种快速判断两个矩阵是否相等的方法: 对于两个\(n * n\)矩阵,两边同时乘一个\(n * 1\)的随机矩阵,如果结果相等,那么有很大概率两个矩阵相等 如果左边是 ...
- bzoj2396: 神奇的矩阵(矩阵乘法+随机化)
这题n三方显然会GG... 运用矩阵乘法的性质A*B*R=A*(B*R)=C*R,于是随机化出一个一列的R,就可以把复杂度降低成n方...大概率是不会错的 #include<iostream&g ...
- bzoj2396 神奇的矩阵(随机化)
Time Limit: 5 Sec Memory Limit: 512 MB 给出三个行数和列数均为N的矩阵A.B.C,判断A*B=C是否成立. 题目可能包含若干组数据. 对于每组数据,第一行 ...
- [Swust OJ 1126]--神奇的矩阵(BFS,预处理,打表)
题目链接:http://acm.swust.edu.cn/problem/1126/ Time limit(ms): 1000 Memory limit(kb): 65535 上一周里,患有XX症的哈 ...
- 神奇的矩阵 NOI模拟题
神奇的矩阵 题目大意 有一个矩阵\(A\),第一行是给出的,接下来第\(x\)行,第\(y\)个元素的值为数字\(A_{x-1,y}\)在\(\{A_{x-1,1},A_{x-1,2},A_{x-1, ...
- 【bzoj2396】神奇的矩阵 随机化
题目描述 给出三个行数和列数均为N的矩阵A.B.C,判断A*B=C是否成立. 输入 题目可能包含若干组数据.对于每组数据,第一行一个数N,接下来给出三个N*N的矩阵,依次为A.B.C三个矩阵. 输出 ...
- [XJOI NOI2015模拟题13] A 神奇的矩阵 【分块】
题目链接:XJOI NOI2015-13 A 题目分析 首先,题目定义的这种矩阵有一个神奇的性质,第 4 行与第 2 行相同,于是第 5 行也就与第 3 行相同,后面的也是一样. 因此矩阵可以看做只有 ...
- D.Starry的神奇魔法(矩阵快速幂)
/*D: Starry的神奇魔法 Time Limit: 1 s Memory Limit: 128 MB Submit My Status Problem Description ...
- 神奇的矩阵(bzoj 2396)
Description 给出三个行数和列数均为N的矩阵A.B.C,判断A*B=C是否成立. Input 题目可能包含若干组数据. 对于每组数据,第一行一个数N,接下来给出三个N*N的矩阵,依次为 ...
随机推荐
- java输出流实现文件下载
//导出Excel try { HSSFWorkbook wb = carService.export(list); //调用service方法~! response.setContentType(& ...
- NodeJS异常处理uncaughtException篇
很多 NodeJS 的开发者在抱怨异常处理太麻烦,我们会通过一些列博客梳理一下NodeJS中常见的异常处理的手段. 和大多数编程语言一样,在 NodeJS 里可以通过throw抛出一个异常: thro ...
- 线上问题 - MySQL SQL state [HY000]; error code [1366]
一.问题描述 另外一个系统调用服务接口api:/xxx/create?aName=&time=&...,数据没有保存成功提示SQL state [HY000]; error code ...
- HDU 1247 Hat’s Words(map,STL,字符处理,string运用)
题目 用map写超便捷 也可以用字典树来写 我以前是用map的: #include<stdio.h> #include<string.h> #include<algori ...
- Masonry自动布局
介绍,入门: http://www.cocoachina.com/ios/20141219/10702.html 下载: http://code.cocoachina.com/detail/30114 ...
- android 启动adb
1.命令行进入 sdk/platform-tools 2.执行命令 adb kill-server 3.执行命令 adb start-server
- iOS后台如何保持socket长连接和数据传输
工程中使用tcp长连接来和服务端进行数据传输,在IOS平台上,由于苹果的后台机制,会有以下问题: 当程序退到后台的时候,所有线程被挂起,系统会回收所有的socket资源,那么socket连接就会被关闭 ...
- 知问前端——概述及jQuery UI
知问系统,是一个问答系统.主要功能:即会员提出问题,会员回答问题.目前比较热门的此类网站有:知乎http://www.zhihu.com.百度知道http://zhidao.baidu.com等.这里 ...
- hibernate中openSession()跟getCurrentSession()方法之间的区别
Hibernate openSession() 和 getCurrentSession的区别 getHiberanteTemplate .getCurrentSession和OpenSession 采 ...
- php ++a和a++
<?php$a=$b=5;$a+$b=$a++-++$b;echo $b;?> 输出-1