這題不錯,開始看題目,以為是道水題,花幾分鐘打了個暴搜,果斷runtime error,棧溢位。於是馬上找規律,發現可以轉換成矩陣乘法和快速冪解決,不過由於審題不清,搞錯了a0...a9的順序,調了老半天才發現。。。。
/** hdu1757/win.cpp
* created on: 2012-7-9
* author : ben */
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
const
int max_order = 11
;int
mod;
typedef
inttypec;
typedef
struct
mymatrix
void
init() }}
}mymatrix;
mymatrix
operator*(mymatrix ma, mymatrix mb)
} }
return
numc;
}mymatrix mpow(mymatrix ma,
intx)
for (; x; x >>= 1
) ma = ma *ma;
}return
numc;
}int
main()
while(scanf("
%d%d
", &k, &mod) == 2
) mymatrix ret = mpow(matrix, k - 9
);
int ans = 0
;
for(int i = 1; i < 10; i++)
printf(
"%d\n
", ans);
}return0;
}
矩陣快速冪 HDU1757
題目連線 給出k,m,求f k m,其中 x 10時,f x x x 10時,f x a0 f x 1 a1 f x 2 a2 f x 3 a9 f x 10 ai 0 i 9 會給出且只能為0或1 帶入公式易推導得 k 10時,f k f 9 b0 f 8 b1 f 7 b2 f 6 b3 f 5...
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 ...