bzoj2396 神奇的矩陣

2022-03-30 14:58:04 字數 975 閱讀 7419

與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>=t;i--)

#define clr(x,c) memset(x,c,sizeof(x))

#define ll long long

int read()

while(isdigit(c)) x=x*10+c-'0',c=getchar();

return x*f;

}const int nmax=1005;

ll r[nmax],ra[nmax],rb[nmax],rc[nmax],a[nmax][nmax],b[nmax][nmax],c[nmax][nmax];

int main()

if(flag) printf("yes\n");

}return 0;

}

time limit: 5 sec  memory limit: 512 mb

submit:

1042  solved: 298

[submit][status][discuss]

給出三個行數和列數均為n的矩陣a、b、c,判斷a*b=c是否成立。

題目可能包含若干組資料。

對於每組資料,第一行乙個數n,接下來給出三個n*n的矩陣,依次為a、b、c三個矩陣。

對於每組資料,若a*b=c成立,則輸出yes,否則no。每個答案佔一行。12

2100

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

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

[submit][status][discuss]

bzoj2396 神奇的矩陣

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

bzoj2396 神奇的矩陣

再隨機生成乙個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的每一列預處理求和,然後就可以...

BZOJ 2396 神奇的矩陣 矩陣 隨機

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