/**
题目:Colossal Fibonacci Numbers! UVA 11582
链接:https://vjudge.net/problem/UVA-11582
题意:f[0] = 1, f[1] = 1; 给定一个n,求f[a^b]%n的结果。a,b达到2^64 - 1大。
思路:a,b很大,用无符号长整型;我还是太菜了,自己没想出来。这道题很显然是找循环节的题。但我不知怎么找。
lrj P316
思路就是,由于fibonacci数是由前两个数相加得来,又%n;所以所有fibonacci取余后,结果都在1000以内。
两个连续的数最多只有1000×1000种。所以循环节就会出现。
我一开始以为可能是混循环或者纯循环两种情况。然后搞得很麻烦。
实际上只有一种情况:纯循环;
证明:假设存在混循环,f[0] f[1] f[2] ... f[i] f[i+1] ... f[j] f[j+1]...
f[i]==f[j], f[i+1]==f[j+1]; 由于f[i+1] = f[i]+f[i-1] , f[j+1] = f[j]+f[j-1] 所以显然f[i-1]==f[j-1]; 那么f[i-1] f[i] f[j-1] f[j]又是一个循环节。同理一直推到f[0] f[1]开始的循环。 所以都是纯循环。 */
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <set>
#include <vector>
#include <cmath>
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int inf = 0x3f3f3f3f;
const int maxn = 1e3+;
const double eps = 1e-;
int f[maxn*maxn];
ull a, b;
int n;
ll PowMod(int mod)
{
ll p = ;
a %= mod;
ll x = a;
while(b>){
if(b&) p = p*x%mod;
x = x*x%mod;
b >>= ;
}
return p;
}
void solve()
{
f[] = ;
f[] = ;//n = 1 的时候 这里为0
int ed;
for(int i = ; i <= n*n; i++){
f[i] = f[i-]+f[i-];
f[i] %= n;
if(f[i-]==f[]&&f[i]==f[]){
ed = i-; ///[st, ed]
break;
}
}
ll pos = PowMod(ed);
printf("%d\n",f[pos]);
}
int main()
{
int T;
cin>>T;
while(T--){
scanf("%llu%llu%d",&a,&b,&n);
if(a==||n==){///处理0^ei的情况,以及对1取模值肯定为0;
printf("0\n"); continue;
}
solve();
}
return ;
}

Colossal Fibonacci Numbers! UVA 11582 寻找循环节的更多相关文章

  1. Colossal Fibonacci Numbers! UVA - 11582(快速幂,求解)

    Problem Description The i’th Fibonacci number f(i) is recursively defined in the following way: •f(0 ...

  2. UVA 11582 Colossal Fibonacci Numbers(数学)

    Colossal Fibonacci Numbers 想先说下最近的状态吧,已经考完试了,这个暑假也应该是最后刷题的暑假了,打完今年acm就应该会退了,但是还什么都不会呢? +_+ 所以这个暑假,一定 ...

  3. UVa 11582 Colossal Fibonacci Numbers! 紫书

    思路是按紫书上说的来. 参考了:https://blog.csdn.net/qwsin/article/details/51834161  的代码: #include <cstdio> # ...

  4. UVa-11582:Colossal Fibonacci Numbers!(模算术)

    这是个开心的题目,因为既可以自己翻译,代码又好写ヾ(๑╹◡╹)ノ" The i’th Fibonacci number f(i) is recursively defined in the f ...

  5. Colossal Fibonacci Numbers(巨大的斐波那契数)UVA 11582

    评测地址:http://acm.hust.edu.cn/vjudge/problem/41990 The i'th Fibonacci number f (i) is recursively de n ...

  6. UVa 11582 Colossal Fibonacci Numbers! 【大数幂取模】

    题目链接:Uva 11582 [vjudge] watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fil ...

  7. hdu1005 Number Sequence(寻找循环节)

    主题链接: pid=1005">huangjing 题意: 就是给了一个公式,然后求出第n项是多少... 思路: 题目中n的范围实在是太大,所以肯定直接递推肯定会超时,所以想到的是暴力 ...

  8. Uva11582 Colossal Fibonacci Numbers!(同余模定理+快速幂)

    https://vjudge.net/problem/UVA-11582 首先明确,斐波那契数列在模c的前提下是有循环节的.而f[i] = f[i-1]+f[i-2](i>=2)所以只要有两个连 ...

  9. F(N)---hdu2802(寻找循环节)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2802 f[1] = 1; f[2] = 7; f[n] = (f[n-2] - (n-1)*(n-1) ...

随机推荐

  1. Linux下使用xargs得到字符串作为参数进行输出、awk得到字符串作为参数进行输出

    背景: cat test.txt 实例: 1.xargs cat test.txt | xargs -i echo {} cat test.txt | xargs -I {} echo {} 大小写i ...

  2. u-boot支持LCD显示(基于TQ2440)

    平台简介 Linux版本:Linux-3.14 u-boot版本:u-boot-2015.04 硬件:TQ2440(内存:64MB  NandFlash:256MB) 作者:彭东林 邮箱:pengdo ...

  3. Remote procedure call (RPC)

    Remote procedure call (RPC) (using the .NET client) Prerequisites This tutorial assumes RabbitMQ isi ...

  4. Admin Finder

    #Created for coded32 and his teamopenfire Eliminated Some bugs from my last code shared here as Gues ...

  5. Anaconda 介绍及安装

    一.前言 Python易用,但用好却不易,其中比较头疼的就是包管理和Python不同版本的问题,特别是当你使用Windows的时候.为了解决这些问题,有不少发行版的Python,比如WinPython ...

  6. 《深入理解Java虚拟机》笔记2

    都知道Java对内存是自动垃圾回收的,什么样的内存是可以回收的? 这个问题是值得思考的. 对象已死的判定方法有两种: (1)引用计数器法 给对象添加一个引用计数器,有一个地方用到此对象,计数器加一. ...

  7. Android动态载入Dex机制解析

    1.什么是类载入器? 类载入器(class loader)是 Java™中的一个非常重要的概念.类载入器负责载入 Java 类的字节代码到 Java 虚拟机中. Java 虚拟机使用 Java 类的方 ...

  8. 火车票抢票API 根据乘客的车次与座席要求快速订票出票

    火车票抢票API 根据乘客的车次与座席要求快速订票出票:https://www.juhe.cn/docs/api/id/257 1.站站查询 接口地址:http://v.juhe.cn/grabTic ...

  9. Crontab命令--Linux

    Crontab命令--定时任务   命令格式 Example:  

  10. Qt笔记——元对象系统

    Qt元对象系统提供了对象间的通信机制:信号和槽.以及执行类形信息和动态属性系统的支持.是标注C++的一个扩展,它使得Qt可以更好的实现GUI图形用户界面编程.Qt的元对象系统不支持C++模板.虽然模板 ...