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