bzoj2396 神奇的矩陣

2022-06-07 14:06:10 字數 585 閱讀 1818

再隨機生成乙個n*1的矩陣d,若$a*b=c$,則顯然有$a*b*d=c*d$,根據結合律,又有$a*(b*d)=c*d$

由於(n*n)*(n*1)的複雜度是$o(n^2)$的,因此暴力乘法即可

(程式的做法是判斷乘起來的矩陣所有數字之和與c是否相同,即求$a[i][k]*b[k][j]$,對a的每一列預處理求和,然後就可以快速計算

1 #include2

using

namespace

std;

3int n,x,s[1005];4

long

long

ans;

5int

main()

14for(int i=1;i<=n;i++)

15for(int j=1;j<=n;j++)

19for(int i=1;i<=n;i++)

20for(int j=1;j<=n;j++)

24if (ans)printf("

no\n");

25else printf("

yes\n");

26}27 }

view code

bzoj2396 神奇的矩陣

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

bzoj2396 神奇的矩陣

與51nod1140一樣。不過這題是多組資料的。坑。include include include include includeusing namespace std define rep i,s,t for int i s i t i define dwn i,s,t for int i s i...

BZOJ 2396 神奇的矩陣 矩陣 隨機

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