已知乙個數列 aa,它滿足:
a_x= \begin 1 & x \in\\\ a_+a_ & x \geq 4 \endax=x≥4
求 aa 數列的第 nn 項對 10^9+7109+7 取餘的值。
第一行乙個整數 tt,表示詢問個數。
以下 tt 行,每行乙個正整數 nn。
每行輸出乙個非負整數表示答案。
#includeusingnamespace
std;
const
int maxn=1010
;typedef
long
long
ll;const
int mod=1e9+7
;int
t,n;
struct
matrix ans,
base
;void
init ()
matrix mul (matrix a,matrix b)
return
wjm;
}void qpow (int
p) }
intmain ()
init();
qpow(n);
printf(
"%lld\n
",ans.m[2][1
]); }
}
P1939 模板 矩陣加速(數列)
題目描述 a 1 a 2 a 3 1 a x a x 3 a x 1 x 3 求a數列的第n項對1000000007 10 9 7 取餘的值。輸入格式 第一行乙個整數t,表示詢問個數。以下t行,每行乙個正整數n。輸出格式 每行輸出乙個非負整數表示答案。輸入輸出樣例 輸入 1 複製36 810輸出 1...
P1939 模板 矩陣加速(數列)
a 1 a 2 a 3 1 a x a x 3 a x 1 x 3 求a數列的第n項對1000000007 10 9 7 取餘的值。輸入格式 第一行乙個整數t,表示詢問個數。以下t行,每行乙個正整數n。輸出格式 每行輸出乙個非負整數表示答案。輸入樣例 1 368 10輸出樣例 1 4919 對於30...
P1939 矩陣加速(數列)
這個題若不看題目和範圍,我首先想到用遞推,不過 n 2 10 9,若用遞推,一定會超時。要用矩陣加速的話首先要找到乙個矩陣 不唯一 用來相乘 a1,a2,a3 是乙個1 3的矩陣,我想把它轉化為 a2,a3,a4 也是乙個1 3的矩陣,所以要找的矩陣肯定是3 3的 可以假設這個3 3的矩陣為 所以 ...