給定 N×K 矩陣 A 和 K×N 矩陣 B(元素 0~5),計算 C = A×B(N×N),再求 M = CN2,最後對每個元素取模 6 求和。N ≤ 1000,K ≤ 6。直接做 N×N 矩陣乘法會超時。
利用矩陣乘法結合律:
CN2 = (A×B)N2 = A × (B×A)N2-1 × B
注意 B×A 是 K×K 矩陣(K ≤ 6),對其做快速冪僅需 O(K3 log N),極快。最後再乘以 A 和 B 還原 N×N 結果。
struct Matrix {
int a[10][10];
Matrix operator*(const Matrix& o) const {
Matrix r;
for (int i=0;i>= 1;
}
return res;
}
HDU 4965 展示了矩陣乘法結合律在降維中的威力:將大矩陣冪轉化為小矩陣冪,再還原。這類「維度歸約」技巧在矩陣題中極常見,關鍵在於發現 AB 和 BA 的尺寸差異並善用結合律。