B 布置會場 II 矩陣相乘 遞推公式

2021-09-25 09:02:13 字數 1318 閱讀 7116

小d接到了乙個布置會場的任務。

他需要將貴賓觀眾席的椅子排成一排,一共需要n個。

上級領導指示,他只能使用兩種椅子。(a型別和b型別)並且假設每種椅子的數量都是無限的。

而其如果想要擺置乙個b型別的椅子,對應就需要必須有連續兩個一起布置。換句話說,就是如果出現了b型別的椅子,其必須且只有兩個連著b型別的椅子。

小d突然想知道對應n個椅子排成一列,他能夠有多少種布置的方式.

輸入描述:

本題包含多組輸入第一行輸入乙個整數t,表示測試資料的組數

每組測試資料報含一行,輸入乙個整數n,表示一共需要擺放的椅子數量

t<=1000

1<=n<=100000000000000000(10^18)

輸出描述:

每組測試資料輸出包含一行,表示一共有多少種布置的方式,方案數可能會很大,輸出對1000000007取摸的結果。

示例1輸入

2

24

輸出

2

5

說明

第乙個樣例,aa,bb兩種方案。

第二個樣例,aaaa,bbbb,aabb,abba,bbaa五種方案 對於abbb 因為有連續3個b型別椅子所以不可行

#include

#include

#include

#include

#include

#define ll long long

using namespace std;

const ll mod =

1000000007

;struct matrix

;//這裡的mul和pow還有matrix要結合起來用,矩陣快速冪,題目中是有mod的

matrix mul

(matrix &x, matrix &y)

}return c;

}ll pow

(matrix x, ll n)

return ans.a[0]

[0];

}int

main()

;/*——————這一部分是初始的矩陣,矩陣的n次,下面的例子使用了

1,11,0這個矩陣求出來的就是 斐波那契數,具體用什麼函式作為初始函式則

ans.a[0][0]=1,ans.a[1][0]=1;

ans.a[0][1]=1,ans.a[1][1]=0;

——————*/

cin >> t;

while

(t--

)return0;

}

B 布置會場 II 矩陣相乘 遞推公式

小d接到了乙個布置會場的任務。他需要將貴賓觀眾席的椅子排成一排,一共需要n個。上級領導指示,他只能使用兩種椅子。a型別和b型別 並且假設每種椅子的數量都是無限的。而其如果想要擺置乙個b型別的椅子,對應就需要必須有連續兩個一起布置。換句話說,就是如果出現了b型別的椅子,其必須且只有兩個連著b型別的椅子...

A 布置會場 I

今天是tabris和mengxiang000來到幼兒園的第3天,mengxiang000接到了乙個布置會場的任務。他需要將貴賓觀眾席的椅子排成一排,一共需要n個。幼兒園只有兩種椅子,所以他也只能使用兩種椅子。a型別和b型別 並且假設每種椅子的數量都是無限的。而其如果想要擺置乙個b型別的椅子,對應就需...

fjnuoj1193 布置會場 快速冪 矩陣

蛋蛋接到了乙個布置會場的任務。他需要將貴賓觀眾席的椅子排成一排,一共需要n個。上級領導指示,他只能使用兩種椅子。a型別和b型別 並且假設每種椅子的數量都是無限的。擺放規則是這樣的 若擺放a型別的椅子,每次可以擺放乙個,若擺放b型別椅子,每次必須擺放兩個。蛋蛋突然想知道對應n個椅子排成一列,他能夠有多...