例题10-1 巨大的斐波那契数! UVa11582
来源:互联网 发布:30岁的程序员何去何从 编辑:程序博客网 时间:2024/04/28 18:45
1.题目描述:点击打开链接
2.解题思路:由于是模运算,因此整个序列肯定会出现重复序列,事先可以枚举周期T,然后利用pow_mod的算法快速计算a^b(mod T)的结果p,返回F[p]即可。
3.代码:
#define _CRT_SECURE_NO_WARNINGS #include<iostream>#include<algorithm>#include<string>#include<sstream>#include<set>#include<vector>#include<stack>#include<map>#include<queue>#include<deque>#include<cstdlib>#include<cstdio>#include<cstring>#include<cmath>#include<ctime>#include<functional>using namespace std;typedef unsigned long long LL;const int N = 1010;LL a, b;int n;int memo[N];int T(int n) //计算周期T{int& res = memo[n];if (res)return res;int prev = 0, curr = 1, succ;res = 0;for (;;) {res++;succ = (prev + curr) % n;prev = curr;curr = succ;if (prev == 0 && curr == 1)return res;}}int pow_mod(LL a, LL k, int mod) //计算a^k模mod的结果{a %= mod;LL res = 1;while (k) {if (k & 1) res = (res*a) % mod;a = (a*a) % mod;k >>= 1;}return (int)res;}int F(int n, int mod) //计算第n项{int prev = 0, curr = 1, succ;while (n--) {succ = (prev + curr) % mod;prev = curr;curr = succ;}return prev;}int main() {//freopen("test.txt", "r", stdin);int t;cin >> t;while (t--) {cin >> a >> b >> n;if (n == 1) {cout << 0 << endl;continue;}cout << F(pow_mod(a, b, T(n)), n) << endl;}return 0;}
0 0
- 例题10-1 巨大的斐波那契数! UVa11582
- uva11582 巨大的斐波那契数!
- UVa11582 巨大的斐波那契数
- UVA11582 巨大的斐波那契数!
- UVa11582 巨大的斐波那契数 循环节计算+快速幂
- UVa11582 巨大的斐波那契数列
- UVa11582 巨大的斐波那契数列 (快速幂 同余数与模运算)
- 例题10-1 UVA 11582 Colossal Fibonacci Numbers!巨大的斐波那契数列
- 巨大的斐波那契数 uva1582
- Colossal Fibonacci Numbers! 巨大的斐波那契数 UVA
- 例10-1 uva11582(裴波那切数列)
- UVA11582 求很大的斐波那契 快速幂膜
- UVA 11582 巨大数的斐波那契数列 (大数取模,幂取模,模的计算方法)
- 例题10-1 巨大的斐波拉契数 Uva 11582
- Uva11582 Colossal Fibonacci Numbers! (数论、斐波那契循环节)
- UVa11582 Colossal Fibonacci Numbers!(斐波那契数列小规律+思维)
- 关于斐波那契数列的一些例题
- 找规律,数学(巨大的斐波那契数列,uva 11582)
- java 字节流和字符流的区别
- Linux安装node.js
- hdu 1285 确定比赛名次 简单的拓扑排序模板题~~需要注意重边
- 辛星浅析kill、pkill的区别
- POJ 3565 Ants
- 例题10-1 巨大的斐波那契数! UVa11582
- POJ 3252 递推关系
- UVA - 11292 Dragon of Loowater
- codeforces 166e Tetrahedron 水dp
- UVA - 11729 Commando War
- uva 11300 - Spreading the Wealth(数论)
- hdu 1021 (找规律题)
- 【ACM打卡】ZOJ 1414 3100
- Android SDK更新太慢解决方法