時間限制: 1 sec
記憶體限制: 256 mb
提交: 27
解決: 1 [
提交][
狀態][
討論版][命題人:
外部匯入]
求 f12+f22+f32+....+fn2f_1^2+f_2^2+f_3^2+....+f_n^2f1
2+f2
2+f3
2+..
..+f
n2, 其中 fif_ifi
代表斐波那契數列的第 ii
i 項。 (f0=0,f1=1)(f_0=0 , f_1=1)(f
0=0,
f1=1
)當然結果會很大,請將它對 109+710^9+710
9+7 取模。
輸入格式
一行乙個數 nnn.
輸出格式
一行乙個數,代表答案。
樣例 樣例輸入
6
樣例輸出
104
資料範圍與提示
對於30%的資料:n≤105n\leq 10^5n≤
105。
對於另外20%的資料: 1000000∣n1000000|n10
0000
0∣n (即n是1000000的倍數),且n≤5∗109n\leq 5*10^9n≤
5∗10
9。 對於100%的資料:n≤1018n\leq10^n≤
1018
。 #include
#include
#include
#define mod 1000000007
#define ll long long
using namespace std;
char ch[50010];
int n[50010];
ll ans[3][3],b[3][3],c[3][3],tot,l;
bool check()
void div()
while(!n[l]) l--;
}void mi()
for(int i=1;i<=2;i++)
for(int j=1;j<=2;j++)
for(int k=1;k<=2;k++)
c[i][j]=(c[i][j]+b[i][k]*b[k][j]%mod)%mod;
for(int i=1;i<=2;i++)
for(int j=1;j<=2;j++)
b[i][j]=c[i][j],c[i][j]=0;
div();}}
void slove()
int main()
{//freopen("fibsqr.in","r",stdin);
//freopen("fibsqr.out","w",stdout);
cin>>ch+1;l=strlen(ch+1);
for(int i=1;i<=l;i++) n[i]=ch[l-i+1]-48;
slove();
cout<
Cogs 1708 斐波那契平方和 矩陣乘法
斐波那契平方和 輸入檔案 fibsqr.in 輸出檔案 fibsqr.out 簡單對比 時間限制 0.5 s 記憶體限制 128 mb 題目描述 輸入格式 一行乙個整數 n 輸出格式 一行乙個整數 ans 樣例輸入 4 樣例輸出 15 資料範圍 1 n 1015 矩陣乘法.n定理 f i 2 f n...
藍橋 斐波那契和
題目描述 齊肯多夫定理表示任何正整數都可以表示成若干個不連續的斐波那契數 不包括第乙個斐波那契數 之和。這種和式稱為齊肯多夫表述法。斐波那契定義 f 0 0,f 1 1,f n f n 1 f n 2 n 2,n n 這裡不使用f 0 和f 1 例如 8有3種不同的齊肯多夫表述 8 f 2 f 3 ...
斐波那契數列 斐波那契數列python實現
斐波那契數列 fibonacci sequence 又稱 分割數列 因數學家列昂納多 斐波那契 leonardoda fibonacci 以兔子繁殖為例子而引入,故又稱為 兔子數列 指的是這樣乙個數列 1 1 2 3 5 8 13 21 34 在數學上,斐波納契數列以如下被以遞推的方法定義 f 1 ...