這是乙個加強版的斐波那契數列。
給定遞推式
求f(n)的值,由於這個值可能太大,請對109+7取模。
第一行是乙個整數t(1 ≤ t ≤ 1000),表示樣例的個數。以後每個樣例一行,是乙個整數n(1 ≤ n ≤ 1018)。
每個樣例輸出一行,乙個整數,表示f(n) mod 1000000007。
4123100
11657
558616258
/*f(i) = f(i - 1) + f(i - 2) + i^3 + i^2 + i + 1
f(i) 1 1 1 1 1 1 f(i - 1)
f(i - 1) 1 0 0 0 0 0 f(i - 2)
(i + 1)^3 0 0 1 3 3 1 i ^ 3
(i + 1)^2 0 0 0 1 2 1 i ^ 2
i + 1 0 0 0 0 1 1 i
1 0 0 0 0 0 1 1
*/#include
using
namespace
std;
typedef
long
long
ll;const ll mod = 1e9 + 7
;void mul(ll f[6][6], ll a[6][6
], ll mod) }}
memcpy(f, c,
sizeof
(c));
}void mulself(ll a[6][6
], ll mod) }}
memcpy(a, c,
sizeof
(c));
}int
main() , , , , , };
ll f[
6] = , ans[6][6] = ;
for (int i = 0; i < 6; i++) ans[i][i] = 1
;
while
(n)
cout
<< (ans[0][0] * 1 + ans[0][1] * 0 + ans[0][2] * 8 + ans[0][3] * 4 + ans[0][4] * 2 + ans[0][5] * 1) % mod <
}return0;
}
又見斐波那契數列
時間限制 1000 ms 記憶體限制 65535 kb 難度 4 描述 m斐波那契數列。m斐波那契數列f n 是一種整數數列,它的定義如下 f 0 a f 1 b f n f n 1 f n 2 n 1 現在給出a,b,n,聰明的 你能求出f n 的值嗎?輸入 輸入包含多組測試資料 每組資料佔一行,...
nyoj 1000 又見斐波那契數列
分析 定義 x,y x代表a的個數,y代表b的個數。先找規律f 0 a 1,0 f 1 b 0,1 f 2 ab 1,1 f 3 abb 1,2 f 4 abbab 2,3 f 5 abbababb 3,5 f 6 abbababbabbab 5,8 由規律可知,f n a fibonacci n ...
又見斐波那契數列 大數的應用
題目描述 大家都知道斐波那契數列吧?斐波那契數列的定義是這樣的f0 0 f 1 1 fi f i 1 fi 2 f 0 0 f1 1 f i fi 1 f i 2現在給你乙個數x,聰明的你一定知道這是斐波那契數列中的第幾項。資料保證x一定有對應的項y,且 2 y 1e4 輸入 第一行乙個整數t,表示...