POJ3233 矩陣連續冪之和

2021-07-10 04:13:20 字數 882 閱讀 2589

題意,給乙個n*n的矩陣a,求a+a^2+a^3+a^4+a^5+a^6+```+a^k, 矩陣對m取mod.

有種東西叫二分- -

if(k&1)  如果k為奇數,我們計算要加上a^k

如果k為偶數,我們直接計算  i+a^(k>>1),其中i是單位矩陣,然後遞迴計算a+a^2+```+a^(k>>1)

至於為什麼呢,你可以把式子(i+a^(k>>1))(a+a^2+```+a^(k>>1))展開還原(偶數情況)

奇數情況需要加上最後一項。

然後遞迴計算+快速冪取模

我過載了矩陣的 *,+,^,然後寫計算前k項和就比較好些。

(一開始樣例都沒過,過載的時候忘記返回了- -||)

初學矩陣的蒟蒻- -

ac**:

#include#include#include#include#include#include#includeusing namespace std;

const int maxn=35;

int n,m,k;

struct mat

}ans;

mat operator+(mat a,mat b)

} return c;

}mat operator*(mat a,mat b)

} }return c;

}mat operator^(mat a,int y)

return c;

}mat s(mat a,int y)

return tmp;

}int main()

ans=s(ans,k);//求和

for(int i=1;i<=n;i++)

}return 0;

}

poj 3233 矩陣快速冪

十個利用矩陣乘法解決的經典題目的最後一題 1a終於刷完十道題了,基本都是乙個思路 二分優化!a 1 a 2 a 3 a 4 a 5 a 6 a 7 a 8 用二分變成 a 1 a 2 a 3 a 4 a 4 a 1 a 2 a 3 a 4 a 1 a 2 a 3 a 4 a 5 a 6 a 7 a ...

poj 3233 矩陣高速冪

題意 給出乙個公式求這個式子模m的解 分析 本題就是給的矩陣,所以非常顯然是矩陣高速冪,但有一點。本題k的值非常大。所以要用二分求和來降低執行時間。include include include include include include include include include incl...

poj3233(矩陣快速冪)

poj3233 給定n k,m 然後是n n行,我們先可以把式子轉化為遞推的,然後就可以用矩陣來加速計算了。矩陣是加速遞推計算的乙個好工具 我們可以看到,矩陣的每個元素都是乙個矩陣,其實這計算乙個分塊矩陣,我們可以把分塊矩陣展開,它的乘法和普通矩陣的乘法是一樣的。1 include 2 includ...