题意:有式子y=(5+26√)1+2xy=(5+2\sqrt6)^{1+2^x}.
给定 xx和MM (0≤x<2320≤x) 求y(x)y(x)的整数部分modmod M<script type="math/tex" id="MathJax-Element-82">M</script>的值是多少(向下取整)

推矩阵资料:http://blog.csdn.net/crazy______/article/details/9021169
广义斐波那契循环节:http://blog.csdn.net/acdreamers/article/details/25616461
构造类斐波那契数列矩阵:http://blog.csdn.net/acdreamers/article/details/8994222

。。真是。。神。。
可以根据式子推出矩阵 f(n+1)=10*f(n)-f(n-1)
注意f(1)=10 f(2)=2

//author: CHC
//First Edit Time:    2015-09-20 20:31
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <set>
#include <vector>
#include <map>
#include <queue>
#include <set>
#include <algorithm>
#include <limits>
using namespace std;
typedef long long LL;
const int MAXN=1e+4;
const int MAXM=1e+5;
const int INF = numeric_limits<int>::max();
const LL LL_INF= numeric_limits<LL>::max();
const int N = 2;
void matric_mul(LL A[][N],LL B[][N],LL C[][N],LL mod){LL tmp[N][N];for(int i=0;i<N;i++){for(int j=0;j<N;j++){tmp[i][j]=0;for(int k=0;k<N;k++){tmp[i][j]=((tmp[i][j]+A[i][k]*B[k][j])%mod+mod)%mod;}}}for(int i=0;i<N;i++){for(int j=0;j<N;j++){C[i][j]=tmp[i][j];}}
}
LL q_pow(LL n,LL mod){LL tmp[][N]={{0,-1},{1,10}};LL ans[N][N];memset(ans,0,sizeof(ans));for(int i=0;i<N;i++)ans[i][i]=1;while(n){if(n&1)matric_mul(ans,tmp,ans,mod);n>>=1;matric_mul(tmp,tmp,tmp,mod);}//printf("%I64d %I64d\n%I64d %I64d\n",ans[0][0],ans[0][1],ans[1][0],ans[1][1]);//puts("");//printf("%I64d %I64d\n",ans[1][1],ans[0][1]);//return ans[1][1]%mod;return ((((ans[1][1]*10)%mod+mod)%mod+((ans[0][1]*2)%mod+mod)%mod)%mod+mod)%mod;
}
LL q_pow1(LL base,LL n,LL mod){LL ans=1;while(n){if(n&1)ans=ans*base%mod;n>>=1;base=base*base%mod;}return ans;
}
int main()
{int T,cas=0;scanf("%d",&T);while(T--){LL x;int mod;scanf("%I64d%d",&x,&mod);LL p=(LL)(mod+1)*(mod-1);LL r=q_pow1(2,x,p);//printf("r:%I64d p:%I64d\n",r,p);LL res=q_pow(r,mod);//printf("%I64d\n",res);printf("Case #%d: ",++cas);if(!res){printf("%d\n",mod-1);}else {printf("%I64d\n",res-1);}//printf("%I64d\n",q_pow(x,mod));//LL r=q_pow1(2LL,(LL)x,(LL)(mod-1)*(mod+1));//printf("%I64d\n",q_pow(r,(LL)mod));}return 0;
}

5451 Best Solver 构造共轭复根求递推矩阵广义斐波那契循环节降幂相关推荐

  1. 递推法:斐波那契数列java

    在不使用递归和公式法的情况下,求斐波那契数列,使用递推法,极大降低时间复杂度 public class Fei {public static void main(String[] args) {// ...

  2. 递推法输出斐波拉契数列

    #include<stdio.h> int main() {int f[21],i;f[1]=1;f[2]=1;for(i=3;i<21;i++)f[i]=f[i-1]+f[i-2] ...

  3. 2019南昌网络赛 H. The Nth Item(广义斐波那契数列求通项公式模板)(二次剩余+分块)

    链接:https://nanti.jisuanke.com/t/41355 题意: Q个询问,每次求F(N),但是N要用上一次询问的结果得到. 思路: 1.直接矩阵快速幂求,再用map记一下答案,求过 ...

  4. hdu-6989 Pass!(广义斐波那契数列求通项+bsgs)

    题目链接:点击这里 题目大意: 有 nnn 个人在传球,从 111 号开始传球,每次只能传给别人,设传了 ttt 次球后球回到 111 的方案数为cntcntcnt ,求最小的 ttt 其满足此时的 ...

  5. 递归求出第n项斐波那契数列_Java

    public class test_Febonacci {public static void main(String[] args) {//斐波那契额数列: 1 1 2 3 5 8 13//输出第n ...

  6. 递推算法之斐波那契数列——昆虫繁殖

    昆虫繁殖 问题描述: 科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强.每对成虫过x个月每个月产y对卵,每对卵要过两个月长成成虫.假设每个成虫不死,第一个月只有一对成虫,且卵长成成虫后的 ...

  7. python 计算斐波那契数列方法,递归方法求第N项的斐波那契数

    def number(n):if n==0:return 0if n==1:return 1return number(n-1)+number(n-2)

  8. c语言——求第n位的斐波那契数 (Fibonacci number)(不考虑溢出)

    斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946 ...

  9. 递归、递推法斐波那契数列

    编写2个函数,分别采用递归和递推方法计算斐波那契数列的前n项,函数返回列表,该列表中存放斐波那契数列,并写出程序调用这2个函数,输出斐波那契数列. #递归方法 def fib1 (n): if n & ...

  10. c语言减治法求a的n次方算法,拜托,面试别再问我斐波那契数列了!!!

    面试中,问得比较多的几个问题之一,求斐波那契数列f(n)? 画外音:姐妹篇 <拜托,面试别再问我TopK了!!!> <拜托,面试别再让我数1了!!!> 什么是斐波那契数列? 斐 ...

最新文章

  1. [Xcode 实际操作]七、文件与数据-(3)创建文本文件、属性列表文件、图片文件
  2. 对抗样本与生成式对抗网络
  3. PTA浙大版python程序设计题目集--第1章-3 输出“Python语言简单易学” (10 分)
  4. LIBCLNTSH.SO: WRONG ELF CLASS: ELFCLASS32错误一例
  5. 小甲鱼Python笔记(下)
  6. Linux基本操作指南
  7. python中textinput_python – 在Kivy应用程序中获取textinput值
  8. X-Frame-Options 响应头
  9. 高效实用Kafka-Kafka集群维护(分区平衡机制、kafka分区日志迁移)
  10. SVD在推荐系统中的推导及应用-简单明了
  11. 怎么在linux系统中输入日历,Linux命令行上如何使用日历详解
  12. 2019/5/第二周
  13. android kl文件编辑,Android手机固件的简单修改教程
  14. VMware 虚拟磁盘文件备份与恢复
  15. 【网上商城优惠活动】
  16. SDUT ACM 多项式求和(基于C语言)
  17. Unity打包Android项目报错
  18. python中幂运算_python的幂运算
  19. 编程语言编年史:作为程序员的你怎能不知?
  20. 东南大学计算机科学与技术夏令营,保研经验 | 排名第一,七项专利,拿到多个夏令营offer,成功上岸985!...

热门文章

  1. python制作表情,使用Python制作滑稽表情
  2. Cf#595 (Div. 3)D-贪心
  3. 计算机系军训口号四句霸气,军训口号四句霸气一班
  4. A(AI)、B(BigData)、C(Cloud)通俗介绍
  5. c++语言循环读写文件夹,【C++探索之旅】第一部分第十课:文件读写,海阔凭鱼跃...
  6. Altium net has no driving source问题
  7. 如何用云计算提高员工工作效率
  8. SOA架构中企业数据总线(ESB)和微服务架构中注册服务管理(dubbo)的区别
  9. 关键时刻救一命:旧手机改造求生工具
  10. Latex排版—(1)基础排版