数学&模拟:随机化-矩阵随机化
BZOJ2396
给出三个行数和列数均为N的矩阵A、B、C,判断A*B=C是否成立
随机生成一个N乘1的矩阵R
然后判断A*B*R是否等于C*R,而前者相当于A*(B*R)
与后者一样都可以在O(N2)的时间里算出来
如果算出来的结果相等
A*B和C几乎也相等
#include<iostream>
#include<cstdio>
#include<cstdlib>
using namespace std;
int n;
int a[][],b[][],c[][];
int rnd[],ans1[],ans2[];
void mmul(int a[],int b[][],int s[])
{
int tmp[];
for(int j=;j<=n;j++)
{
tmp[j]=;
for(int k=;k<=n;k++)
tmp[j]+=a[k]*b[k][j];
}
for(int i=;i<=n;i++)s[i]=tmp[i];
}
bool jud()
{
for(int i=;i<=n;i++)
if(ans1[i]!=ans2[i])return ;
return ;
}
int main()
{
for(int i=;i<=;i++)rnd[i]=rand();
while(scanf("%d",&n)!=EOF)
{
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
scanf("%d",&a[i][j]);
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
scanf("%d",&b[i][j]);
for(int i=;i<=n;i++)
for(int j=;j<=n;j++)
scanf("%d",&c[i][j]);
mmul(rnd,a,ans1);
mmul(ans1,b,ans1);
mmul(rnd,c,ans2);
if(jud())printf("Yes\n");
else printf("No\n");
}
return ;
}
数学&模拟:随机化-矩阵随机化的更多相关文章
- 浅谈数学上的矩阵——矩阵的乘法运算的概念及C++上的实现模板
首先让我们来谈一谈数学意义上的矩阵(在座各位也可以简单地将它理解为一个二维数组) 这样可以帮助我们理解矩阵加速及其运用的原理(矩阵加速是一个及其玄学的东西,所以请重点理解矩阵乘法) 这里给出一段严格 ...
- 【bzoj2396】神奇的矩阵 随机化
题目描述 给出三个行数和列数均为N的矩阵A.B.C,判断A*B=C是否成立. 输入 题目可能包含若干组数据.对于每组数据,第一行一个数N,接下来给出三个N*N的矩阵,依次为A.B.C三个矩阵. 输出 ...
- 【BZOJ-3243】向量内积 随机化 + 矩阵
3243: [Noi2013]向量内积 Time Limit: 10 Sec Memory Limit: 256 MBSec Special JudgeSubmit: 1249 Solved: ...
- [poj 3318] Matrix Multiplication (随机化+矩阵)
Description You are given three n × n matrices A, B and C. Does the equation A × B = C hold true? In ...
- [CSP-S模拟测试]:矩阵游戏(数学)
题目描述 $LZK$发明一个矩阵游戏,大家一起来玩玩吧,有一个$N$行$M$列的矩阵.第一行的数字是$1,2,...,M$,第二行的数字是$M+1,M+2,...,2\times M$,以此类推,第$ ...
- 【做题】SRM701 Div1 Hard - FibonacciStringSum——数学和式&矩阵快速幂
原文链接 https://www.cnblogs.com/cly-none/p/SRM701Div1C.html 题意:定义"Fibonacci string"为没有连续1的01串 ...
- 3D数学读书笔记——矩阵基础
本系列文章由birdlove1987编写,转载请注明出处. 文章链接:http://blog.csdn.net/zhurui_idea/article/details/24975031 矩 ...
- P3216 [HNOI2011]数学作业 (矩阵快速幂)
P3216 [HNOI2011]数学作业 题目描述 小 C 数学成绩优异,于是老师给小 C 留了一道非常难的数学作业题: 给定正整数 NN 和 MM ,要求计算 Concatenate (1 .. N ...
- 3D数学读书笔记——矩阵基础番外篇之线性变换
本系列文章由birdlove1987编写.转载请注明出处. 文章链接:http://blog.csdn.net/zhurui_idea/article/details/25102425 前面有一篇文章 ...
随机推荐
- c# 修改pdf
继续引用spire的dll. 1.代码如下: PdfDocument doc = new PdfDocument(); doc.LoadFromFile("wen.pdf"); P ...
- “我爱淘”第二冲刺阶段Scrum站立会议7
完成任务: 完成学院分类的点击查看书籍功能,可以点击书的条目查看书的详细信息.将登陆界面以及注册发布界面完善了一下修复一些bug. 计划任务: 将书的详细信息进行完善,并且可以点击收藏以及已预订等功能 ...
- 2014-2015 ACM-ICPC, NEERC, Eastern Subregional Contest Problem G. The Debut Album
题目来源:http://codeforces.com/group/aUVPeyEnI2/contest/229669 时间限制:1s 空间限制:64MB 题目大意:给定n,a,b的值 求一个长度为n的 ...
- Codeforces Beta Round #8 C. Looking for Order 状压dp
题目链接: http://codeforces.com/problemset/problem/8/C C. Looking for Order time limit per test:4 second ...
- vs调试iisExpress经常卡死
最近调试一个项目时,电脑经常卡死,不得不强制重启,一直不知道iisExpress为何卡死的. 想了很多办法,强制删除bin里面的文件,结果不行: 企图删除iisExpress虚拟目录中的文件也不行: ...
- VSVC2010中常用的C++11特性
static_assert 声明 static_assert 声明在编译时测试软件断言,这与在运行时进行测试的其他断言机制不同. 如果断言失败,则编译也将失败,且系统将发出指定的错误消息. const ...
- MongoDb企业应用实战(一) 写在MongoDb应用介绍之前(i)
故事背景: 本人有幸,经老友( 现为x知名快递公司技术总监 ) 推荐进入中国前三大民营快递公司之一工作,在此非常感谢他,在此也非常感谢我在第一家公司帮助我进步的兄弟(我在时的项目经理,现为 x 知名 ...
- 更改HTTP头信息
http信息分三部分 1.请求行 GET lizi.php HTTP/1.1 2.HTTP头信 Host: localhost Connection: keep-alive Cache-Contr ...
- Oracle判断字段中是否包含中文(若有,取出该中文的方法)
一.问题说明 在处理数据的时候,需要判断某个字段字符串中是否有中文,若有则取出中文. 二.解决办法 首先如何判断某个字段字符串中是否有中文.这里介绍三种方法: 1.采用ASCIISTR函数 说明:AS ...
- 第184天:js创建对象的几种方式总结
面向对象编程(OOP)的特点: 抽象:抓住核心问题 封装:只能通过对象来访问方法 继承:从已有的对象下继承出新的对象 多态:多对象的不同形态 一.创建对象的几种方式 javascript 创建对象简单 ...