题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5895

f(n)=f(n-2)+2*f(n-1)
f(n)*f(n-1)=f(n-2)*f(n-1)+2*f(n-1)*f(n-1);
2*f(n-1)*f(n-1)=f(n)*f(n-1)-f(n-2)*f(n-1);
累加可得 g(n) = f(n)*f(n+1)/2
 
然后这个公式:A^x % m = A^(x%phi(m)+phi(m)) % m (x >= phi(m))
 
反正比赛没做出来.
#include <bits/stdc++.h>
#define LL long long
using namespace std;
struct Maxtri{
LL v[][];
Maxtri(){memset(v,,sizeof(v));}
}ori;
LL n, y, x, s, mod ;
Maxtri mult(Maxtri a,Maxtri b){
Maxtri temp;
for(int i=;i<;i++){
for(int j=;j<;j++){
for(int k=;k<;k++){
temp.v[i][j] = (temp.v[i][j]+(a.v[i][k]*b.v[k][j])%mod)%mod;
}
}
}
return temp;
}
LL pow_mod(Maxtri a,LL n){
if(n==) return ;
if(n==) return ;
if(n==) return ;
n-=;
Maxtri ans;
for(int i=;i<;i++){
ans.v[i][i] = ;
}
while(n){
if(n&) ans = mult(ans,a);
a = mult(a,a);
n>>=;
}
return (ans.v[][]*+ans.v[][])%mod;
}
LL pow_mod1(LL a,LL n,LL mod){
LL ans = ;
while(n){
if(n&) ans = ans*a%mod;
a = a*a%mod;
n>>=;
}
return ans;
}
LL Phi(LL x)
{
LL ans = x;
for(LL i=2LL; i*i<=x; i++)
{
if(x % i == )
{
ans -= ans/i;
while(x % i == )
x /= i;
}
}
if(x > )
ans -= ans/x;
return ans;
}
int main(){
ori.v[][] = ,ori.v[][] = ;
ori.v[][] = ,ori.v[][] = ;
int tcase;
scanf("%d",&tcase);
while(tcase--){
scanf("%lld%lld%lld%lld",&n, &y, &x, &s);
s++;
LL phi = *Phi(s);
mod = *phi;
LL fn = pow_mod(ori,n*y);
LL fn1 = pow_mod(ori,n*y+);
LL ans = ((fn*fn1)%mod/);
ans+=phi;
printf("%lld\n",pow_mod1(x,ans,s)%s);
}
return ;
}

最新文章

  1. c# BlowFish 高速 对称加密
  2. OsmocomBB &amp;&amp; Motorora C118
  3. OpenGL的gluLookAt和glOrtho的关系
  4. Ubuntu 14.10 下安装Ganglia监控集群
  5. CentOS 7.0禁用iptables防火墙
  6. bzoj 2463 [中山市选2009]谁能赢呢?(博弈)
  7. Ubuntu 10.04下安装Opengl glx
  8. D、GO、Rust 谁会在未来取代 C?为什么?——Go语言的定位非常好,Rust语言非常优秀,D语言也不错
  9. HaoZip(好压) 去广告纯净版 4.4
  10. ar1220f-s四条拨号光纤做的策略路由实现负载均衡
  11. 编程菜鸟的日记-初学尝试编程-C++ Primer Plus 第6章编程练习4
  12. [Swift]LeetCode399. 除法求值 | Evaluate Division
  13. Mybatis order by语句使用&lt;Choose&gt;&lt;When&gt;动态拼装无效的原因及解决方法
  14. CSRF 漏洞原理详解及防御方法
  15. [系统软件]Ubuntu 18.04中的Shutter禁用了“编辑”选项解决
  16. MySQL篇,第一章:数据库知识1
  17. 源码分析三(Vector与ArrayList的区别)
  18. display: table 实现menu等高居中排列
  19. Scrum 冲刺博客第五篇
  20. 20155235 《Java程序设计》 实验二 实验三 敏捷开发与XP实践

热门文章

  1. 洛谷P4559 [JSOI2018]列队 【70分二分 + 主席树】
  2. 20135239 益西拉姆 linux内核分析 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
  3. 据说要写一个CTSC&amp;APIO的收获
  4. Hadoop 遇到的问题集
  5. Codechef Observing the Tree
  6. Codeforces 807 A Is it rated?
  7. 有向图博弈+出度的结合 Codeforces Round #406 (Div. 2) C
  8. 分块 (貌似能用LCT做,反正我现在还不会) BZOJ 2002
  9. bzoj 3884 欧拉定理
  10. 如何编写高质量的 jQuery 代码?