题面
传送门:UVa-11582
题目大意:给出long long范围的a,b,n,求出f(a^b) % n的值,其中f(x)为Fibonacci数列的第x项.
样例
Sample Input
3
1 1 2
2 3 1000
18446744073709551615 18446744073709551615 1000
Sample Output
1
21
250
思路
一开始的思路是利用Fibonacci的通项公式加上二项式定理来求出a^b%n的项
但是无奈推公式时推错而且发现a^b%n的值和f(a^b)%n毫无关系.
联想到fibonacci数列对一个数n取mod,可以由鸽巢原理证明,
于是就诞生了做法.
先找出最小循环节,在这个循环节中寻找f(a^b)的位置.
代码
1 |
|