链接:https://www.nowcoder.com/acm/contest/93/K
来源:牛客网

题目描述

wyh学长特别喜欢斐波那契数列,F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n>=2)

一天他突发奇想,想求F(a^b)%c

输入描述:

  1. 输入第一行一个整数T(1<=T<=100),代表测试组数
    接下来T行,每行三个数 a,b,c (a,b<=2^64) (1<c<1000)

输出描述:

  1. 输出第a^b项斐波那契数对c取余的结果

输入例子:
  1. 3
  2. 1 1 2
  3. 2 3 1000
  4. 32122142412412142 124124124412124 123
输出例子:
  1. 1
  2. 21
  3. 3

-->

示例1

输入

  1. 3
  2. 1 1 2
  3. 2 3 1000
  4. 32122142412412142 124124124412124 123

输出

  1. 1
  2. 21
  3. 3

【分析】:紫薯第10章经典原题。寻找循环节替代mod。发现因为fi是由前两项确定的,只要前两项和f[0],f[1]一样,就找到循环节。

【代码】:

  1. #include<bits/stdc++.h>
  2. using namespace std;
  3. #define eps 1e-6
  4. #define ull unsigned long long
  5. #define N 100005
  6. ull f[N];
  7. ull n, p;
  8. ull Pow(ull a, ull b, ull mod)
  9. {
  10. ull res = , tmp = a % mod;
  11. while(b)
  12. {
  13. if(b&)
  14. res = res * tmp % mod;
  15. tmp = tmp * tmp % mod;
  16. b >>= ;
  17. }
  18. return res;
  19. }
  20.  
  21. int main()
  22. {
  23. int t;
  24. cin>>t;
  25. while(t--)
  26. {
  27. ull a, b, mod;
  28. cin>>a>>b>>mod;
  29. f[] = ,f[] = ;
  30. for(ull i = ; ; i++)
  31. {
  32. f[i] = (f[i-] + f[i-]) % mod;
  33. if(f[i]== && f[i-]==)
  34. {
  35. mod = i-;
  36. break;
  37. }
  38. }
  39.  
  40. cout<<f[Pow(a, b, mod)]<<endl;
  41. }
  42. return ;
  43. }

【总结】:UVA大法好,紫薯大法好!

2018年东北农业大学春季校赛 K wyh的数列【数论/斐波那契数列大数取模/循环节】的更多相关文章

  1. 2018年东北农业大学春季校赛 I wyh的物品【01分数规划/二分】

    链接:https://www.nowcoder.com/acm/contest/93/I来源:牛客网 题目描述 wyh学长现在手里有n个物品,这n个物品的重量和价值都告诉你,然后现在让你从中选取k个, ...

  2. 2018年东北农业大学春季校赛 B wyh的矩阵【规律】

    题目链接 https://www.nowcoder.com/acm/contest/93/B 思路 先加入 中间的那行 和中间的那列 再减去 最中间那个数 因为它 加了两次 然后逐行往下加 会发现是一 ...

  3. 2018年东北农业大学春季校赛 F wyh的集合【思维】

    链接:https://www.nowcoder.com/acm/contest/93/F来源:牛客网 题目描述 你们wyh学长给你n个点,让你分成2个集合,然后让你将这n个点进行两两连接在一起,连接规 ...

  4. 2018年东北农业大学春季校赛 D wyh的迷宫【搜索】

    链接:https://www.nowcoder.com/acm/contest/93/D来源:牛客网 题目描述 给你一个n*m的迷宫,这个迷宫中有以下几个标识: s代表起点 t代表终点 x代表障碍物 ...

  5. 2018年东北农业大学春季校赛 B wyh的矩阵【找规律】

    链接:https://www.nowcoder.com/acm/contest/93/B来源:牛客网 题目描述 给你一个n*n矩阵,按照顺序填入1到n*n的数,例如n=5,该矩阵如下 1 2 3 4 ...

  6. 2018年东北农业大学春季校赛 E wyh的集合 【数学】

    题目链接 https://www.nowcoder.com/acm/contest/93/F 思路 其实容易知道在两个不同集合里 假设元素个数 分别为 a b 然后对于第一个集合里的每一个元素 都可以 ...

  7. 2018年东北农业大学春季校赛 E wyh的阶乘 【数学】

    题目链接 https://www.nowcoder.com/acm/contest/93/E 思路 其实就是找阶乘的项中5的个数 末尾为什么会出现0 因为存在5的倍数和偶数相乘 有0存在 借鉴 htt ...

  8. 2018年东北农业大学春季校赛 D wyh的迷宫 【BFS】

    题目链接 https://www.nowcoder.com/acm/contest/93/D 思路 BFS模板题 AC代码 #include <cstdio> #include <c ...

  9. 2018年东北农业大学春季校赛-wyh的吃鸡

    BFS: 1. 从起点开始BFS,遇到X点则return: 2. vis[px][py][0]代表经过pxpy这点前还没有找到车: vis[px][py][1]代表经过pxpy这点前已经找到车: 3. ...

随机推荐

  1. [BZOJ1208]宠物收养所(Splay)

    Description 最近,阿Q开了一间宠物收养所.收养所提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物.每个领养者都希望领养到自己满意的宠物,阿Q根据领养者的要求通过他自己发明的一个特 ...

  2. SJTU 1077 加分二叉树

    http://acm.sjtu.edu.cn/OnlineJudge/problem/1077 题意: 设一个n个节点的二叉树tree的中序遍历为(l,2,3,…,n),其中数字1,2,3…,n为节点 ...

  3. android shape.xml 文件使用

    设置背景色可以通过在res/drawable里定义一个xml,如下: <?xml version="1.0" encoding="utf-8"?> ...

  4. 解决maven项目Invalid bound statement (not found)的方法

    用IDEA 做的ssm 的maven项目,登陆时出现上图问题. 原因是它读取不到DevUserMapper.xml文件和取它xml文件,后面查询在编译好的文件中,xml文件并没有引入进来,这就是导致出 ...

  5. Python 包导入

    首先我们先了解下python中寻找模块的顺序 是否是内建模块 ->主目录 ->PYTHONPATH环境变量 ->标准库 -> 首先判断这个model是否是built-in,即内 ...

  6. 【精彩回顾】第二届微医前端技术沙龙(附PPT下载)

    5 月 25 日,以「无界」为主题的第二届微医前端技术沙龙成功举办.本届沙龙的演讲题目涵盖了前端技术几个主要的应用场景,包括服务端.桌面端以及跨平台的开发.最近几年前端技术发展非常快,各种可以提高开发 ...

  7. 实时视频h5

    http://www.cnblogs.com/dotfun/p/4286878.html

  8. leetcode 【 Subsets II 】python 实现

    题目: Given a collection of integers that might contain duplicates, S, return all possible subsets. No ...

  9. MFC深入浅出读书笔记第二部分1

    第六章 MFC程序的生死因果 MFC学习过程,这个方法不错,条例清晰. 1.CWinApp  -- 取代WinMain地位 WinMain函数的功能由CWinApp的三个函数实现 virtual BO ...

  10. CSU-1908 The Big Escape

    CSU-1908 The Big Escape Description There is a tree-like prison. Expect the root node, each node has ...