http://codeforces.com/gym/101341/problem/I

题意:给三个N*N的矩阵,问a*b是否等于c。

思路:之前遇到过差不多的题目,当时是随机行(点),然后验证,不满足就退出。还有暴力弄的(当时的数据是500)。也提到过这样的解法,当时没用这种做法做一遍。

就是构造多一个矩阵d。

由于矩阵乘法满足结合律:a * (b * d) = c * d. d是一个n*1的矩阵,b * d之后会得到一个n * 1的矩阵,因此只需要O(n^2)就可以验证是否正确。

 #include <bits/stdc++.h>
using namespace std;
typedef long long LL;
#define N 1010
const int MOD = 1e9 + ;
LL a[N][N], b[N][N], c[N][N];
LL d[N], t0[N], t1[N], t2[N]; int n; int main() {
scanf("%d", &n);
srand(time(NULL));
for(int i = ; i <= n; i++)
for(int j = ; j <= n; j++) scanf("%lld", &a[i][j]);
for(int i = ; i <= n; i++)
for(int j = ; j <= n; j++) scanf("%lld", &b[i][j]);
for(int i = ; i <= n; i++)
for(int j = ; j <= n; j++) scanf("%lld", &c[i][j]);
bool flag = ;
for(int cas = ; cas <= && flag; cas++) {
for(int i = ; i <= n; i++) d[i] = rand() % MOD;
for(int i = ; i <= n; i++) {
t2[i] = ;
for(int j = ; j <= n; j++)
t2[i] = (t2[i] + c[i][j] * d[j]) % MOD;
} for(int i = ; i <= n; i++) {
t1[i] = ;
for(int j = ; j <= n; j++)
t1[i] = (t1[i] + b[i][j] * d[j]) % MOD;
} for(int i = ; i <= n && flag; i++) {
t0[i] = ;
for(int j = ; j <= n; j++)
t0[i] = (t0[i] + a[i][j] * t1[j]) % MOD;
if(t0[i] != t2[i]) flag = ;
}
}
if(flag) puts("YES");
else puts("NO");
return ;
}

Codeforces Gym101341I:Matrix God(随机化构造矩阵降维)***的更多相关文章

  1. POJ 3233 Matrix Power Series(构造矩阵求等比)

    Description Given a n × n matrix A and a positive integer k, find the sum S = A + A2 + A3 + … + Ak. ...

  2. hdu 5015 233 Matrix(构造矩阵)

    http://acm.hdu.edu.cn/showproblem.php?pid=5015 由于是个二维的递推式,当时没有想到能够这样构造矩阵.从列上看,当前这一列都是由前一列递推得到.依据这一点来 ...

  3. 构造矩阵解决这个问题 【nyoj299 Matrix Power Series】

    矩阵的又一个新使用方法,构造矩阵进行高速幂. 比方拿 nyoj299 Matrix Power Series 来说 给出这样一个递推式: S = A + A2 + A3 + - + Ak. 让你求s. ...

  4. UVa 11149 Power of Matrix (矩阵快速幂,倍增法或构造矩阵)

    题意:求A + A^2 + A^3 + ... + A^m. 析:主要是两种方式,第一种是倍增法,把A + A^2 + A^3 + ... + A^m,拆成两部分,一部分是(E + A^(m/2))( ...

  5. UVA 11149 Power of Matrix 构造矩阵

    题目大意:意思就是让求A(A是矩阵)+A2+A3+A4+A5+A6+······+AK,其中矩阵范围n<=40,k<=1000000. 解题思路:由于k的取值范围很大,所以很自然地想到了二 ...

  6. Number Sequence(HDU 1005 构造矩阵 )

    Number Sequence Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)T ...

  7. Codeforces 392C Yet Another Number Sequence (矩阵快速幂+二项式展开)

    题意:已知斐波那契数列fib(i) , 给你n 和 k , 求∑fib(i)*ik (1<=i<=n) 思路:不得不说,这道题很有意思,首先我们根据以往得出的一个经验,当我们遇到 X^k ...

  8. CodeForces 450B Jzzhu and Sequences (矩阵优化)

    CodeForces 450B Jzzhu and Sequences (矩阵优化) Description Jzzhu has invented a kind of sequences, they ...

  9. poj 3735 Training little cats(构造矩阵)

    http://poj.org/problem?id=3735 大致题意: 有n仅仅猫,開始时每仅仅猫有花生0颗,现有一组操作,由以下三个中的k个操作组成: 1. g i 给i仅仅猫一颗花生米 2. e ...

随机推荐

  1. html5 页面元素插件

    1. 滚动条 jquery.nicescroll 正常引用方式: 设置区域高度 var bodyHeight = $(document.body).height(); $("#XXXXXXX ...

  2. Python+Django+SAE系列教程10-----Django模板

    在本章中,我们开始模板,在前面的章节,您可能已经注意到,我们回到文本的方式有点特别的示例视图. 那.HTML直接在硬编码 Python 其中代码. 这的确是一个小BT. def current_dat ...

  3. C# System.Threading.Timer的使用

    using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...

  4. Github上的watch、star和fork分别是什么意思

    Github上的watch.star和fork分别是什么意思呢? 1.watch可以用来设置接收邮件提醒 2.如果想持续关注该项目就star一下 3.如果想将项目拷贝一份到自己的账号下就fork fo ...

  5. 谷歌将为 Mac 和 Windows 用户推出新的备份和同步应用

    据报道,谷歌将于 6 月 28 日面向 Mac 和 Windows 用户发布一款新的备份和同步应用(Backup and Sync app). Google 刚刚宣布将推出其备份和同步应用程序,该工具 ...

  6. MASMPlus汇编之简单窗体

    .386 .model flat,stdcall option casemap:none ;include 定义 include   windows.inc include   gdi32.inc i ...

  7. Index of /android/repository

    放这里了,总是记不住... https://mirrors.zzu.edu.cn/android/repository/

  8. Vm安装

      说明:都是默认安装,并不需要繁琐设置,所以没有文字说明

  9. 龙芯GO!龙芯平台上构建Go语言环境指南

    龙芯软件生态系列——龙芯GO!龙芯平台上构建Go语言环境指南2016-07-05 龙芯中科1初识Go语言Go语言是Google公司于2009年正式推出的一款开源的编程语言,是由Robert Gries ...

  10. Windows完成端口与猪肉佬

    首先应该说明的是,我也是第一次使用完成端口.虽然以前偶尔在网上看到完成端口的文章和代码,但真正自己动手写还是第一次,不过我这个人有个特点就是大胆,例如没有写那个界面编程系列前,其实我甚至不知道原来一个 ...