$f[n]\bmod q=p^{Fib[n]}\bmod q=p^{Fib[n]\bmod\varphi(q)}\bmod q$

首先线性筛预处理出所有素数,然后对于每次询问,求出$\varphi(q)$,再用矩阵快速幂求出Fib[n],最后用快速幂求答案即可。

#include<cstdio>
typedef long long ll;
const int N=46341;
int T,i,j,p[N],tot,vis[N],n,q;ll a,P;
struct mat{ll a[2][2];inline mat(){a[0][0]=a[0][1]=a[1][0]=a[1][1]=0;}inline mat operator*(mat b){mat c;for(int i=0,j,k;i<2;i++)for(j=0;j<2;j++)for(k=0;k<2;k++)(c.a[i][j]+=a[i][k]*b.a[k][j]%P)%=P;return c;}
}A,B,C;
inline int phi(int n){int t=1,i;for(i=1;p[i]*p[i]<=n&&i<=tot;i++)if(n%p[i]==0){n/=p[i],t*=p[i]-1;while(n%p[i]==0)n/=p[i],t*=p[i];}if(n>1)t*=n-1;return t;
}
inline int fib(int x){P=phi(q);for(A=B=C=mat(),A.a[0][1]=A.a[1][0]=A.a[1][1]=B.a[1][0]=C.a[0][0]=C.a[1][1]=1;x;x>>=1,A=A*A)if(x&1)C=C*A;C=C*B;return C.a[0][0];
}
inline int pow(ll a,int b){ll t=1;for(;b;b>>=1,a=a*a%q)if(b&1)t=t*a%q;return t;}
int main(){for(i=2;i<N;i++){if(!vis[i])p[++tot]=i;for(j=1;j<=tot;j++){if(i*p[j]>=N)break;vis[i*p[j]]=1;if(i%p[j]==0)break;}}scanf("%d%lld",&T,&a);while(T--){scanf("%d%d",&n,&q);if(q==1){puts("0");continue;}printf("%d\n",pow(a,fib(n)));}return 0;
}

  

转载于:https://www.cnblogs.com/clrs97/p/4403141.html

BZOJ1409 : Password相关推荐

  1. Android开发之第三方框架使用汇总

    1. image loading 框架: 1.1 Glide1.2 Picasso1.3 后续更新... 2.网络框架: 2.1 xUtil32.2 OkHttp32.3 Retrofit2.4 后续 ...

  2. You must reset your password using ALTER USER statement before executing thi

    第一次 安装好mysql 创建数据库的时候提示这个问题,百度了,自己的处理方法 就是第一次需要设置数据库的密码 ,把原始的数据库密码更改一下 更改密码的方法: mysql> SET PASSWO ...

  3. redmine忘记username和password

    环境: Ubuntu 13.10 bitnami-redmine-2.5.1-1-linux-x64-installer.run 用bitnami安装完redmine以后,有是否忘记了username ...

  4. MySQL登录时ERROR 1045:Access denied for user ‘root’@’localhost’ (using password: YES)

    MySQL登录时ERROR 1045错误 win10_x64系统中登录MySQL时出现1045错误 错误描述: ERROR 1045:Access denied for user 'root'@'lo ...

  5. 停止Password Manager Agent服务导致应用程序启动缓慢

    在一个实施环境中,部署了Password Manager用来实现单点登录功能,但是由于Password Manager的提示基本都是以英文为主,而且配置也比较麻烦,普通用户看见会比较影响用户体验,所以 ...

  6. 2019 ICPC全国邀请赛(西安)I. Cracking Password(序列检验,BSGS,细节题)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 2019 ICPC全国邀请赛(西安)I. Cracking Password Weblink http ...

  7. python用户名和密码登录函数_基于Python构建用户ID和密码存储查询系统,python,建立,一个,用户名,UserID,Password,的...

    大家好,本篇博客目的是建立存储和查询用户名和密码的python系统,基础好的可跳过中间小干货,源码在末尾,喜欢的留下小赞哦! 系统主要功能 主要功能如下: 创建一个新用户及其密码 修改值定用户的密码 ...

  8. 如何通过审计安全事件日志检测密码喷洒(Password Spraying)攻击

    许多渗透测试人员和攻击者通常都会使用一种被称为"密码喷洒(Password Spraying)"的技术来进行测试和攻击.对密码进行喷洒式的攻击,这个叫法很形象,因为它属于自动化密码 ...

  9. #1045 - Access denied for user 'root'@'localhost' (using password: NO)

    看到phpadmin说root帐号没有设置密码,不安全,设置了之后就不能登录了,想起来需要修改phpadmin中的某个文件来修改响应的密码, 有人说要修改phpMyAdmin\config.inc.p ...

最新文章

  1. Python+OpenCV 图像处理系列(4)—— 图像像素的读写、算术运算、逻辑运算及像素的统计
  2. 2022-2028年中国高效节能电机行业投资分析及前景预测报告
  3. php判断一个字符串是否为纯数字,php判断字符串是否为数字
  4. 64位Ubuntu kylin 16.04使用fastboot下载内核到tiny4412开发板
  5. 【Java】 剑指offer(67) 把字符串转换成整数
  6. 【C++ STL学习之三】容器deque深入学习
  7. 大数四则运算java(转)
  8. LNMP架构的简单应用--部署论坛
  9. VB 屏幕融化超级恶搞程序代码
  10. 大白菜pe 通用pe 安装心得
  11. Email应用,SMTP协议,POP协议
  12. ubuntu无法进入图形界面,停留在【ok】启动界面
  13. java 评论功能_博客项目实现文章评论功能(重点是评论回复)
  14. Python dict字典keys()、values()和items()方法
  15. 坑爹的苹果机不执行ajax请求,苹果机加载外部Jquery失败
  16. 丸子的技术类文章!!它来了!!!
  17. 未来十年的音视频,教科书级别的Android音视频开发教程,学完我成功“挤进”了抖音音视频开发岗
  18. 数字中国建设2522整体框架
  19. 程序人生 | (8) 好的研究想法从哪里来
  20. 我真的没读野鸡大学!是他们不好好起名字!

热门文章

  1. eclipse断点调试 出现Source not found
  2. 活久见: 原来 Chrome 浏览器支持 Import from 语法
  3. zookeeper系列(二)实战master选举
  4. “网站漏洞”成电信诈骗帮凶 专家呼吁进行“立体防护”
  5. 自己动手写第一阶段的处理器(1)——计算机的简单模型、架构、指令系统
  6. Tomcat配置虚拟路径,使上传文件与服务器及工程文件分离开
  7. 推荐一个在线json数据格式化网站
  8. php中time()和mktime()方法的区别
  9. Windows Server 2008 配置IE使用代理
  10. IBM RAS:高效存储的优化组合