題目:
把給定的圖轉為鄰接矩陣,即a(i,j)=1當且僅當存在一條邊i->j。令c=a*a,那麼c(i,j)=σa(i,k)*a(k,j),實際上就等於從點i到點j恰好經過2條邊的路徑數(列舉k為中轉點)。類似地,c*a的第i行第j列就表示從i到j經過3條邊的路徑數。
通過將矩陣連乘的過程模擬出來,模擬一遍就懂了。
#includeusing namespace std;
typedef long long int ll;
const ll mod = 1000;
const int maxn=22; //自己看情況定義
//定義矩陣乘法
struct matrix{
ll arr[maxn][maxn];
matrix operator*(matrix b){
matrix ans;
ll tmp;
for(int i=0; i
hdu 2157 K步路 矩陣快速冪
題目大意 給出有向連通圖,求a到b恰好經過k個點的方案數 m 解題思路 鄰接矩陣0 1儲存邊edge 鄰接矩陣相乘,edge i k edge k j 當且僅當edge i k 和edge k j 同時為1,也就是同時存在這兩條邊時相乘才為1 定義g i j m表示i到j恰好經過m條邊的方案數,則方...
hdu 4965 矩陣快速冪
給定兩個矩陣a,b,分別為n k和k n 求出矩陣c a b,矩陣m c n n 將矩陣m中的所有元素取模6,得到新矩陣m 並計算矩陣m 中所有元素的和 注意到ba 得到 6 6,而ab 得到1000 1000 轉化乘法算式為 m abababab.a ba n n 1 b 直接用矩陣快速冪即可 i...
快速矩陣冪HDU2276
題意 有n盞燈,編號為1到n。0表示不亮,1表示亮,如果 i th的燈的左邊燈是亮的,那麼下一秒鐘,i th燈的狀態要改變,0變成1,1變成0。第1個燈的 左邊是第n個燈 輸入t,輸入開始的狀態 問你在第t秒時,燈的狀態時什麼樣的,輸出來。分析 可推出下一秒的狀態a i a i 1 n n a i ...