首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

HDU 矩陣快速冪:求 Tr(A^k) % 9973

     編輯:關於C++

問題描述

給定 n×n 矩陣 A (n≤10),求其 k 次冪 (k<10⁹) 的跡(主對角線元素和)模 9973。

矩陣快速冪模板

struct Mat { int a[11][11]; };
Mat mul(Mat A, Mat B) {
    Mat C; memset(C.a, 0, sizeof(C.a));
    for (int i=0; i>= 1;
    }
    return R;
}
int trace(Mat A) {
    int sum = 0;
    for (int i=0; i

完整主程序

int main() {
    int T; scanf("%d", &T);
    while (T--) {
        long long k; scanf("%d%lld", &n, &k);
        Mat M;
        for (int i=0; i

優化技巧

  • 乘法循環順序 i-k-j 利用稀疏性(若矩陣稀疏)。
  • 模運算在內層累加後統一取模,減少取模次數。
  • n≤10 很小,常數極低,無需 Strassen 等高級算法。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved