題目描述
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。
輸出格式
每行輸出乙個非負整數表示答案。
輸入輸出樣例
輸入 #136
810輸出 #149
19說明/提示
對於30%的資料 n<=100;
對於60%的資料 n<=2 * 10 ^ 7;
對於100%的資料 t<=100,n<=2 * 10^9;..
....
分析
.程式:
#include#include#includeusing namespace std;
long long mo=1000000007,ans[3][3],a[3][3];
void jzcf(long long x[3][3],long long y[3][3])
int main()
memset(ans,0,sizeof(ans));
memset(a,0,sizeof(a));
ans[0][0]=a[0][0]=1;ans[0][1]=a[0][1]=0;ans[0][2]=a[0][2]=1;
ans[1][0]=a[1][0]=1;ans[1][1]=a[1][1]=0;ans[1][2]=a[1][2]=0;
ans[2][0]=a[2][0]=0;ans[2][1]=a[2][1]=1;ans[2][2]=a[2][2]=0;
n--;
while (n!=0)
printf("%lld\n",(ans[1][0]+mo)%mo);
} return 0;
}
模板 矩陣加速(數列)(矩陣加速遞推)
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。輸出格式 每行輸出乙個非負整數表示答案。矩陣加速裸題 和我的前一篇基本一模一樣 只不過改變了要乘的...
Luogu1939 模板 矩陣加速(數列)
題目描述 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 3 6...
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...