hdu 3658 矩陣快速冪

2021-12-29 22:18:27 字數 807 閱讀 2766

題意:乙個長度為m的字串需要填充,填充字母必須是』a』 ~ 『z』,』a』 ~ 『z』,要求字串相鄰字元的ascii值的差值≤32,且必須至少存在乙個相鄰字元差值等於32。問有多少種填充方式。

題解:直接構造至少存在乙個相鄰字元差值等於32的不好做,可以逆著想,先求出差=32的所有情況,再求出差值<32的所有情況,兩個結果相減就是解。

#include

#include

#include

using namespace std;

const int mod = 1000000007;

struct mat ori, res, ori2, res2;

long long m;

mat multiply(mat x, mat y)

return temp;

}void calc1(long long m)

}void calc2(long long m)

}int main()

for (int i = 26; i < 52; i++)

for (int i = 0; i < 52; i++)

ori.g[0][i] = ori2.g[0][i] = 1;

calc1(m - 1);

calc2(m - 1);

long long ans1 = 0, ans2 = 0;

for (int i = 0; i < 52; i++)

printf("%lld\n", (ans1 + mod - ans2) % mod);

}return 0;

}

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 ...

快速矩陣冪HDU2254

題意 乙個有向圖,兩個頂點間可能有多條邊,視為不同的路徑,問從v1到v2之間的路徑長度大小在 t1,t2 的方案數mod 2008。輸入n條邊,p1,p2。因為p1,p2 2 32。但是總的頂點數不超過30.所以進行離散化即可。而且有可能t1 t2,所以要判斷一下。輸入的v1,v2可能也不在有向圖內...