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...