hdu4920(矩陣 乘法)

2021-06-23 03:08:39 字數 703 閱讀 1627

題意:矩陣乘法,在乘的過程中每個元素都取模3

在比賽時,我一直在想怎麼才能把o(n*n*n)的時間複雜度給降下來,可是一直沒想到好的辦法,後來看了題解後才知道原來時間複雜度還是o(n*n*n),只是優化了一點而已

**如下:

#include#include#include#include#include#include#include#include#include#include#include#include#define n 1000

#define inf 0x7ffffff

#define eps 1e-9

#define pi acos(-1.0)

using namespace std;

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

int main()

for(i = 0; i < n; i++)

for(j = 0; j < n; j++)

memset(c,0,sizeof(c));

for(i = 0; i < n; i++)

for(k = 0; k < n; k++)

for(i = 0; i < n; i++)

else printf(" %d",c[i][j]);

printf("\n");}}

return 0;

}

HDU4920 矩陣乘法

嗯嗯 就算是水題吧。縮完行就15行 題意 兩個n n的矩陣相乘 n 800 結果對3取模 思路 先對3取模,所以兩個矩陣裡面會出現很多0,所以可以先列舉乙個矩陣,只有當該位置不是0的時候才和另乙個矩陣做乘法。取模的時候也有技巧,不要在計算的途中取模,應該讀入的時候取一次模,輸出的時候取一次模 計算量...

HDU 4920 居然會超時

題意 求兩個n n的矩陣相乘的結果,得出的每個元素 3 分析 2000ms然後n的範圍是800,我們自己估算的時間複雜度並不會超時,但是結果就是超時了。1 include 2 include 3 include 4 include 5 include 6 include 7 include 8 in...

hdu1575 矩陣乘法

要求矩陣的冪,可以將指數變為二進位制的方法,如 r 17 r 16 r 1 即17的二進位制10001,也在用遞迴的方法。下面是用二進位制的方法,如下 include include include define maxn 100 define mod 9973 using namespace st...