题目描述 Fib定义为Fib(0)=0,Fib(1)=1,对于n≥2,Fib(n)=Fib(n-1)+Fib(n-2) 现给出N,求Fib(2^n). 输入 本题有多组数据.第一行一个整数T,表示数据组数. 接下来T行每行一个整数N,含义如题目所示. n≤10^15, T≤5 输出 输出共T行,每行一个整数为所求答案. 由于答案可能过大,请将答案mod 1125899839733759后输出 样例输入 2231 样例输出 3343812777493853 题解 费马小定理+矩阵乘法 傻逼题,根据…
题解: 费马小定理 a^(p-1)=1(mod p) 这里推广到矩阵也是成立的 所以我们可以对(2^n)%(p-1) 然后矩阵乘法维护就好了 模数较大使用快速乘…
Fib数列2 bzoj-5118 题目大意:求Fib($2^n$). 注释:$1\le n\le 10^{15}$. 想法:开始一看觉得一定是道神题,多好的题面啊?结果...妈的,模数是质数,费马小定理就tm完事了,将fib数列的通项公式列出来然后费马小定理... 最后,附上丑陋的代码... ...(照着郭爷一顿瞎jb敲) #include <iostream> #include <cstdio> #include <cstring> #include <algo…
题目大意:求$fib(2^n)$ 就是求fib矩阵的(2^n)次方%p,p是质数,根据费马小定理有 注意因为模数比较大会爆LL,得写快速乘法... #include<bits/stdc++.h> #define ll long long #define MOD(x) ((x)>=mod?(x-mod):(x)) using namespace std; ; ; ][];mtx(){memset(mp, , sizeof(mp));}}ans, base; ll n, T; inline…
MF( i ) = a ^ fib( i-1 ) * b ^ fib ( i )   ( i>=3) mod 1000000007 是质数 , 依据费马小定理  a^phi( p ) = 1 ( mod p )  这里 p 为质数 且 a 比 p小 所以 a^( p - 1 ) = 1 ( mod p ) 所以对非常大的指数能够化简  a ^ k % p  == a ^ ( k %(p-1) ) % p 用矩阵高速幂求fib数后代入就可以 M斐波那契数列 Time Limit: 3000/100…
M斐波那契数列 Time Limit: 1000MS   Memory Limit: 32768KB   64bit IO Format: %I64d & %I64u Submit Status Description M斐波那契数列F[n]是一种整数数列,它的定义如下: F[0] = a F[1] = b F[n] = F[n-1] * F[n-2] ( n > 1 ) 现在给出a, b, n,你能求出F[n]的值吗?   Input 输入包含多组测试数据: 每组数据占一行,包含3个整数a…
[题目大意] M斐波那契数列F[n]是一种整数数列,它的定义如下:F[0] = aF[1] = bF[n] = F[n-1] * F[n-2] ( n > 1 )现在给出a, b, n,求出F[n]的值. [思路] #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; typedef long long ll; ; i…
题目:http://acm.hdu.edu.cn/showproblem.php?pid=5667 题意:如题给了一个函数式,给你a,b,c,n,p的值,叫你求f(n)%p的值 思路:先对函数取以a为底的log,令g(n)=log(a)(f(n)),结果就能得到 g(n)=b+c*g(n-1)+g(n-2);(n>3) g(n)=0;(n=1) g(n)=b;(n=2) g(n)  c  1  1  g(n-1) 用矩阵表示出来就是 g(n-1) = 1  0  0    *  g(n-2)  …
M斐波那契数列 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 1672    Accepted Submission(s): 482 Problem Description M斐波那契数列F[n]是一种整数数列,它的定义如下: F[0] = aF[1] = bF[n] = F[n-1] * F[n-2] ( n > 1 ) 现在给出a,…
题意:给你n个珠子可以染成k种颜色,旋转后相同的视为一种,问共有几种情况 思路:开始按照一般的排列组合做发现情况太多且要太多运算,查了下发现此题是组合中Polya定理模板题- 学的浅只能大致一说公式Sigma(k^gcd(i-1,n))/n求和数量取决于置换群数量,由于这个成环共有n个置换群,而GCD是求当前置换群的等价置换的数量. 注意由于最后要除n,如果直接取模会出现问题.通过费马小定理求得乘法逆元为pow(n,p-2)%p; 其中p为质数. #include <stdio.h> #inc…