uvaoj 11582 Colossal Fibonacci Numbers! 求周期
2015-01-22 12:49
204 查看
uvaoj 11582 Colossal Fibonacci Numbers! 求周期
输入两个非负整数a,b和正整数n(0<=a,b<2^64,1<=n<=1000),计算f(a^b)%n。其中f(0)=0,f(1)=1,f(i+2)=f(i+1)+f(i),i>=0。
因为是对n取模,设F(i)=f(i)%n,那么当(F(i),f(i+1))重复时,整个序列就开始重复,因为余数最多有n种,所以最多n^2项就会出现重复。设周期为T,那么F(n)=F(n%T)。只需计算出0-T就可以了。
代码如下:
输入两个非负整数a,b和正整数n(0<=a,b<2^64,1<=n<=1000),计算f(a^b)%n。其中f(0)=0,f(1)=1,f(i+2)=f(i+1)+f(i),i>=0。
因为是对n取模,设F(i)=f(i)%n,那么当(F(i),f(i+1))重复时,整个序列就开始重复,因为余数最多有n种,所以最多n^2项就会出现重复。设周期为T,那么F(n)=F(n%T)。只需计算出0-T就可以了。
代码如下:
/************************************************************************* > File Name: 11582.cpp > Author: gwq > Mail: gwq5210@qq.com > Created Time: 2015年01月21日 星期三 19时35分13秒 ************************************************************************/ #include <cmath> #include <ctime> #include <cctype> #include <climits> #include <cstdio> #include <cstdlib> #include <cstring> #include <map> #include <set> #include <queue> #include <stack> #include <string> #include <vector> #include <sstream> #include <iostream> #include <algorithm> #define INF (INT_MAX / 10) #define clr(arr, val) memset(arr, val, sizeof(arr)) #define pb push_back #define sz(a) ((int)(a).size()) using namespace std; typedef set<int> si; typedef vector<int> vi; typedef map<int, int> mii; typedef long long ll; typedef unsigned long long ull; const double esp = 1e-5; #define N 1000010 int r ; int main(int argc, char *argv[]) { int t; scanf("%d", &t); while (t--) { ull a, b, n; scanf("%llu%llu%llu", &a, &b, &n); ll m = n * n; ll tmp = 2; r[0] = 0; r[1] = 1 % n; r[2] = 1 % n; for (int i = 3; i <= m; ++i) { r[i] = (r[i - 1] + r[i - 2]) % n; if (r[i] == r[1] && r[i - 1] == r[0]) { tmp = i - 1; break; } } ll ans = 1; ll x = a % tmp; while (b) { if (b & 1) { ans = (ans * x) % tmp; } x = (x * x) % tmp; b >>= 1; } printf("%d\n", r[ans]); } return 0; }
相关文章推荐
- UVa 11582 - Colossal Fibonacci Numbers!(取模+周期)
- Colossal Fibonacci Numbers! UVA - 11582 (数论,幂求模,规律周期)
- UVA 11582 Colossal Fibonacci Numbers!(数论)
- UVA 11582 Colossal Fibonacci Numbers!
- uva11582Colossal Fibonacci Numbers!(快速幂+预处理)
- UVa11582 Colossal Fibonacci Numbers!
- 例题10-1 UVA 11582 Colossal Fibonacci Numbers!巨大的斐波那契数列
- uva 11582 Colossal Fibonacci Numbers!
- UVA - 11582 - Colossal Fibonacci Numbers!(快速幂+打表)
- Uva11582 Colossal Fibonacci Numbers! (数论、斐波那契循环节)
- 【数论】Colossal Fibonacci Numbers!, UVa11582
- UVa 11582 Colossal Fibonacci Numbers!
- UVa 11582 Colossal Fibonacci Numbers!
- 模的应用--uva11582 Colossal Fibonacci Numbers!
- UVa11582 - Colossal Fibonacci Numbersl (打表找规律)
- Colossal Fibonacci Numbers! UVA - 11582
- Colossal Fibonacci Numbers! UVA - 11582
- UVa #11582 Colossal Fibonacci Numbers! (例题10-1)
- UVA - 11582 Colossal Fibonacci Numbers!
- uva 11582 Colossal Fibonacci Numbers!