bzoj2396 隨機化 神奇的矩陣

2021-08-15 09:11:47 字數 1214 閱讀 9877

2396: 神奇的矩陣

time limit: 5 sec memory limit: 512 mb

submit: 1322 solved: 418

[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

sample output

nohint

對於90%的資料,n不超過100;

對於100%的資料,n不超過1000,矩陣中的數字大於等於0小於1000,資料組數不超過5組。

source

[submit][status][discuss]

n^3不能過,所以把a*b*乙個random的列矩陣,把c也乘上去,多隨機幾次大概率就是對的了

#include

#include

#include

#include

#include

#include

#include

using namespace std;

int n,m;

inline int read()

const int n=1100;

int a[n][n],b[n][n],c[n][n];

inline void init(int a[n][n])

inline void trans(int a[n][n],int b[n][n])

int sa[n][n],sb[n][n],sc[n][n],sd[n][n],tmp[n][n];

inline void mul(int a[n][n],int b[n][n],int c[n][n])

inline bool cmp(int a[n][n],int b[n][n])

int main()

}if(pd) printf("yes\n");

}}

bzoj2396神奇的矩陣 隨機化

description 給出三個行數和列數均為n的矩陣a b c,判斷a b c是否成立。input 題目可能包含若干組資料。對於每組資料,第一行乙個數n,接下來給出三個n n的矩陣,依次為a b c三個矩陣。output 對於每組資料,若a b c成立,則輸出yes,否則no。每個答案佔一行。sa...

bzoj 2396 神奇的矩陣 隨機化

題目大意 給定三個n n n nn n的矩陣a aa,b bb,c cc,判斷是否a b c a b c a b c。其中n 1000 n 1000 n 1000 分析 我們隨機乙個n 1 n 1n 1的矩陣r rr,對於滿足上述式子的乙個答案,必然有a b r c r a b r c r a b ...

BZOJ 2396 神奇的矩陣 矩陣 隨機

其實不要放過題目給出的每乙個資訊,就像這一道題,思考為什麼一定是矩陣,為什麼不是乙個簡單的數列之內的,說明解決這一道題就很用到矩陣的特殊性質。其中矩陣有乙個性質就是a b c,c的行數等於a的行數,c的列數等於b的列數,所以我們完全可以隨機構造乙個n行1列的舉證,然後利用矩陣乘法的結合律把矩陣變成n...