wyh的数列~(坑爹题目)
2024-10-10 16:12:25
链接: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
-->
示例1
输入
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 ;
}
最新文章
- 每瓶啤酒2元,2个空酒瓶或4个瓶盖可换1瓶啤酒。10元最多可喝多少瓶啤酒? php
- 打造属于前端的Uri解析器
- QT文档如何使用
- 快速学习springMVC框架原理
- NEO从入门到开窗(1) - 一个智能合约的诞生
- 【alpha冲刺】随笔合集
- SQL 约束 (Constraints)
- netty拆包粘包
- 解决build workspace 缓慢的问题
- MySQL主从复制报错1594处理【转】
- Eclipse中创建一个新的SpringBoot项目
- HDU4287
- BZOJ2669 [cqoi2012]局部极小值 状压DP 容斥原理
- day9笔记整理,记忆
- 由于没有公钥,无法验证下列签名: NO_PUBKEY 54422A4B98AB5139
- C++判断回文
- 谷歌地图api 开发 (转载)
- html_entity_decode() 将 HTML 实体转成字符原型
- 003 python流程控制与函数
- mysql数据库导入黑窗口导入导出数据
热门文章
- c#事件的应用
- Java面试通关要点汇总集
- Node与apidoc的邂逅——NodeJS Restful 的API文档生成
- The method queryForMap(String, Object...) from the type JdbcTemplate refers to the missing type DataAccessException
- WordPress中添加自定义评论表情包的方法
- IDEA设置生成类基本注释信息
- 获取DOM节点的几种方式
- 【Python】 命名空间与LEGB规则
- linux -->; 为什么寄存器比内存快?
- 设计模式 -->; (14)中介者模式