模的应用--uva11582 Colossal Fibonacci Numbers!
来源:互联网 发布:淘宝基础版装修规格 编辑:程序博客网 时间:2024/06/05 14:58
For each test case, output a single line containing the remainder off(ab) upon division byn.
0 ≤ a,b < 264(aand bwill not both be zero) and1 ≤n ≤1000.
思想很巧妙,求f(a ^ b) % n,斐波那契数列极大,所以先对数列求余,得F(i) = f(i) % n,F(i)就不会超过n。
f(i) = f(i - 1) + f(i - 2),F(i) = (f(i - 1) + f(i - 2)) % n。F数列仅取决于n。f数列仅取决于每次前2项,F同理。
当F(i - 1),F(i - 2)开始重复的时候,F数列也开始重复,得周期cycle。
再找到a^b在周期中位置,即(a ^ b) % cycle,即可得答案。
ps: 2^64 是unsigned long long
pps: n为1时,F即为f,不知道为什么要输出0.
#include <iostream>
#include <cstdio>
#include <vector>
using namespacestd;
int main()
{
int t;
cin >> t;
int n;
while (t --) {
unsignedlong long a,b;
cin >> a >> b >> n;
if(n ==1) cout <<0 << endl;
else {
int cycle =0;
vector<int> v;
v.push_back(0),v.push_back(1),v.push_back(1);
for (int i =3; i < 2 * n * n; i ++) {
v.push_back((v[i-1] + v[i - 2]) % n);
if(v[i -1] == 0 && v[i] ==1) {cycle = i - 1;break;}
}
unsignedlong long res =1;
while (b) {
if(b &1) res = res * a % cycle;
b >>= 1;
a = ((a % cycle) * (a % cycle)) % cycle;
}
cout << v[res %cycle] << endl;
}
}
return0;
}
- 模的应用--uva11582 Colossal Fibonacci Numbers!
- UVA11582 Colossal Fibonacci Numbers!(fibonacci序列模x的周期性)
- Uva11582 Colossal Fibonacci Numbers!
- UVa11582 - Colossal Fibonacci Numbers!(模运算)
- 【数论】Colossal Fibonacci Numbers!, UVa11582
- uva11582 Colossal Fibonacci Numbers(分治法)
- UVa11582 [快速幂]Colossal Fibonacci Numbers!
- UVA11582 Colossal Fibonacci
- 例题10-1 UVa11582 Colossal Fibonacci Numbers!(同余与模算术)
- Uva11582 Colossal Fibonacci Numbers! (数论、斐波那契循环节)
- UVa11582 Colossal Fibonacci Numbers!(斐波那契数列小规律+思维)
- UVa11582 - Colossal Fibonacci Numbersl (打表找规律)
- 11582 - Colossal Fibonacci Numbers!
- 11582 - Colossal Fibonacci Numbers!
- Colossal Fibonacci Numbers! UVA
- Colossal Fibonacci Numbers! UVA
- Colossal Fibonacci Numbers! UVA
- Colossal Fibonacci Numbers! UVA
- ATM交易状态特征分析与异常检测(深圳杯B题)
- hdoj1021 Fibonacci Again
- java api 查询hbase
- Codeforces161D【树形DP】
- [leetcode]560. Subarray Sum Equals K
- 模的应用--uva11582 Colossal Fibonacci Numbers!
- 如何在ubuntu下 安装谷歌
- Ajax学习
- cublasGemmEx函数应用-探究8bit矩阵乘
- 深度学习入门必须理解这25个概念
- 河南省第十届ACM省赛题目:问题 D: 年终奖金
- Java高并发基础概念
- 业务报警与检测
- 搜索意图识别浅析