今天将来学习如何求广义Fibonacci数列的循环节。
问题:给定,满足,求的循
环节长度。
来源:http://acdreamoj.sinaapp.com/ 1075题
1195 . 斐波那契数列的循环节
基准时间限制:1 秒 空间限制:65536 KB 分值: 640
斐波那契数列Mod 一个数N会得到一个新的数列,根据同余可以得知,这个数列中的数会出现循环。例如:
F (mod 4) = 0 1 1 2 3 1 ...
F (mod 5) = 0 1 1 2 3 0 3 3 1 4 0 4 4 3 2 0 2 2 4 1 ...
后面的数会出现循环,因此Fib Mod 4的循环节长度是6,Fib Mod 5的循环节长度是20。
给出一个数N,求斐波那契数列Mod N的循环节的长度。
Input
第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 10000)
第2 - T + 1行:每行1个数N。(1 <= N <= 10^9)
Output
共T行,每行一个数,对应循环节的长度。
Input 示例
2
4
5
Output 示例
6
20
1194 . Fib(N) mod Fib(K)
基准时间限制:1 秒 空间限制:65536 KB 分值: 160
Fib(N)表示斐波那契数列的第N项(F(0) = 0, F(1) = 1),给出N和K,求Fib(N) mod Fib(K)。
Input
第1行:一个数T,表示后面用作输入测试的数的数量。(1 <= T <= 10000)
第2 - T + 1行:每行2个数N, K(1 <= N <= 10^18, 1 <= K <= 10^3)
Output
共T行:对应Fib(N) mod Fib(K)的结果。
Input 示例
2
5 5
13 5
Output 示例
0
3
1193 . 斐波那契数列的分解
基准时间限制:1 秒 空间限制:65536 KB 分值: 320
F(n)表示斐波那契数列的第N项(F(0) = 0, F(1) = 1),给出一个数N,输出F(n)质因数分解的表示。例如:
F(10)= 5 * 11
F(30)= 2^3 * 5 * 11 * 31 * 61
Input
输入1个数N(0 <= N <= 1000)。
Output
输出F(n)的分解(注意示例中的输出格式及空格)。
Input 示例
100
Output 示例
F(100)= 3 * 5^2 * 11 * 41 * 101 * 151 * 401 * 3001 * 570601
1146 . 斐波那契字符串
基准时间限制:1 秒 空间限制:65536 KB 分值: 640
斐波那契字符串的定义如下:
f(1) = a
f(2) = b
f(n) = f(n-1) + f(n-2),(n > 2)
所以前6个斐波那契字符串是:"a", "b", "ba", "bab", "babba", "babbabab"
现在给出一个编号n,再给出1个字符串s,求f(n)包含多多少个s。
例如:n = 6,s = "ba",f(6) = "babbabab",包含了3个"ba"。输出3。由于数量巨大,只要输出Mod 10^9 + 7的结果。
Input
第1行:1个数N(2 <= N <= 10^18)
第2行:一个字符串S(S的长度 <= 10^5)
Output
输出数量Mod 10^9 + 7
Input 示例
6
ba
Output 示例
3