wyh的数列~(坑爹题目)
链接: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
输入描述:
输入第一行一个整数T(1<=T<=100),代表测试组数
接下来T行,每行三个数 a,b,c (a,b<=2^64) (1<c<1000)
输出描述:
输出第a^b项斐波那契数对c取余的结果
输入例子:
3
1 1 2
2 3 1000
32122142412412142 124124124412124 123
输出例子:
1
21
3
-->
输入
3
1 1 2
2 3 1000
32122142412412142 124124124412124 123
输出
1
21
3 这题超级超级坑爹 ,专门卡着long long ,要用unsigned long long ,
由于这个原因我卡了好久好久。
这个题目不断的取模,会使得斐波那契数列形成一个环.
然后就是一个快速幂取模。
#include<bits/stdc++.h>
using namespace std; #define ll long long
#define llu unsigned long long
const int maxn=1e5+; llu f[maxn];
llu modexp(llu a,llu b,llu c)
{
llu res=,temp=a%c;
while(b){
if (b&) res=res*temp%c;
temp=temp*temp%c;
b=b>>;
}
return res;
}
int main(){
int t;
scanf("%d",&t);
while(t--){
llu a,b,c;
scanf("%llu%llu%llu",&a,&b,&c);
f[]=,f[]=;
for (int i= ; ;i++){
f[i]=(f[i-]+f[i-])%c;
if (f[i]== && f[i-]==) {
c=i-;
break;
}
}
printf("%llu\n",f[modexp(a,b,c)]);
}
return ;
}
wyh的数列~(坑爹题目)的更多相关文章
- 2018年东北农业大学春季校赛 K wyh的数列【数论/斐波那契数列大数取模/循环节】
链接:https://www.nowcoder.com/acm/contest/93/K来源:牛客网 题目描述 wyh学长特别喜欢斐波那契数列,F(0)=0,F(1)=1,F(n)=F(n-1)+F( ...
- fib数列变种题目
对一个正整数作如下操作:如果是偶数则除以2,如果是奇数则加1,如此进行直到1时操作停止,求经过9次操作变为1的数有多少个? 第9次操作:结果1由2产生.1个被操作数8:结果2只能由4产生.1个被操作数 ...
- fibonacci数列的题目——剑指Offer
https://www.nowcoder.net/practice/c6c7742f5ba7442aada113136ddea0c3?tpId=13&tqId=11160&tPage= ...
- python基础练习题(题目 斐波那契数列II)
day16 --------------------------------------------------------------- 实例024:斐波那契数列II 题目 有一分数序列:2/1,3 ...
- Luogu题目集合[6/未完待续]
1. P1327数列排序 题目描述 给定一个数列{an},这个数列满足ai≠aj(i≠j),现在要求你把这个数列从小到大排序,每次允许你交换其中任意一对数,请问最少需要几次交换? 输入输出格式 输入格 ...
- wikioi 1973 Fibonacci数列【输出第N项的值】
/*===================================== 1978 Fibonacci数列 3 题目描述 Description 斐波纳契数列是这样的数列: f1 = 1 f2 ...
- 【NOI2005】维护数列
https://daniu.luogu.org/problem/show?pid=2042 一道伸展树维护数列的很悲伤的题目,共要维护两个标记和两个数列信息,为了维护MAX-SUM还要维护从左端开始的 ...
- 微软在线测试之lucky string,有关斐波那契的题目都在此了
解决方案: int _tmain(int argc,_TCHAR* argv[]) { size_t fib[] = {1,2,3,5,8,13,21,34}; string str,tempstr; ...
- HDOJ2041_超级楼梯(斐波拉契数列)
正常简单题:通过仔细观察推断即可看出这是一个斐波拉契数列的题目. HDOJ2041_超级楼梯 在做这题的时候我误入了思维盲区,只想着什么方法可以解决,没有看出是斐波拉契数列.因此第一次用组合数方法打了 ...
随机推荐
- ajax错误处理 500错误
在使用ajax请求的时候 ,如果服务器返回的是500错误,或者其他非正常的http错误状态码时 会提示下面的错误 而我们需要把错误信息处理出来 $.ajax({ type:'get', url:&q ...
- 解决linux安装软件:/lib/ld-linux.so.2: bad ELF interpreter问题
问题:64位系统中安装了32位程序解决办法 是因为64位系统中安装了32位程序 解决方法: yum install glibc.i686
- 一年iOS工作经验,如何一举拿下百度、美团、快手等Offer面经(附面试题)
前言: 先简单说说我最近的面试经历吧.面试的公司很多,大部分最后都能得到令人满意的结果,我将这些体会记录下来,面了这么多公司,如果不留下什么,那岂不是太浪费了.对于我来说,这也是一次自我检查,在这次面 ...
- Java中常见数据结构Map之LinkedHashMap
前面已经说完了HashMap, 接着来说下LinkedHashMap. 看到Linked就知道它是有序的Map,即插入顺序和取出顺序是一致的, 究竟是怎样做到的呢? 下面就一窥源码吧. 1, Link ...
- .msi安装包安装方法(安装错误2503和2502)
把鼠标放到Win8屏幕的最左下角,等待Win8 Metro界面的缩略图出现后点击鼠标右键,在弹出的菜单中选择“命令提示符(管理员)”在“命令提示符(管理员)”中输入 msiexec /package ...
- tp框架的url模式
tp框架url地址可以由以下四种 http://网址/index.php?m=XX&c=XX&a=XX 基本get模式 http://网址/index.php/模块/控制器/操作方 ...
- linux修改时区
Linux修改时区 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任 CentOS6: 查看以前的时区: [root@localhost mysq ...
- IPFS:Filecoin和复制证明
这篇文章主要来讲一下Filecoin协议里面的复制证明(Proof of Replication),由于协议涉及到很多概念,可能看起来有点晕乎乎的,小编尽量把复杂问题简单化 ,力求给大家做大普及IPF ...
- ACM搜索问题盘点
深度搜索:棋盘问题,详见http://poj.org/problem?id=1321 //#include<bits/stdc++.h> #include<cstdio> #i ...
- python作业03-文件操作&函数
一.文件处理相关 1.编码问题 (1)请说明python2 与python3中的默认编码是什么?答:Python2默认的字符编码是ASCII,默认的文件编码也是ASCII :python3默认的字符编 ...