来源:Comet OJ - Contest #13

芝士相关: 复平面在信息学奥赛中的应用【雾

其实是道 sb 题???

发现原式貌似十分可二项式定理,然后发现确实如此

我们把 \(a^i\) 替换成 \(\sqrt{a}^{2i}\) 然后发现原式求的就是 :\((\sqrt{a} +b)^n\) 展开后的偶数项

而这些偶数项有个性质,就是他们都不包含 \(\sqrt{a}\) ,所以我们可以把 \((\sqrt{a} +b)\) 转换到复平面上的点, \(b\) 做第一维, \(\sqrt a\) 做第二维

这样,每次第二维坐标相乘的时候 乘上 A 丢给第一维就好了

那么最后咱就用快速幂搞出答案取个第一维就完事儿了

于是学过二次剩余的聚聚显然秒懂代码长什么样...

Code

一直 WA ,后来才发现自己第二维赋的初始值出锅了... (真是憨呢)

//by Judge (zlw ak ioi)
#include<bits/stdc++.h>
#define int __int128_t
using namespace std;
#ifndef Judge
#define getchar() (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<21,stdin),p1==p2)?EOF:*p1++)
#endif
char buf[1<<21],*p1=buf,*p2=buf;
inline int read(){ int x=0,f=1; char c=getchar();
for(;!isdigit(c);c=getchar()) if(c=='-') f=-1;
for(;isdigit(c);c=getchar()) x=x*10+c-'0'; return x*f;
} char sr[1<<21],z[20];int CCF=-1,Z;
inline void Ot(){fwrite(sr,1,CCF+1,stdout),CCF=-1;}
inline void print(int x,char chr='\n'){
if(CCF>1<<20)Ot();if(x<0)sr[++CCF]=45,x=-x;
while(z[++Z]=x%10+48,x/=10);
while(sr[++CCF]=z[Z],--Z);sr[++CCF]=chr;
} int n,A,B,p;
struct cp{ int x,y; cp(){}
cp(int _x,int _y){x=_x,y=_y;}
cp operator *(const cp& b){
return cp((x*b.x+y*b.y%p*A)%p , (x*b.y+y*b.x)%p);
}
}s;
inline int qpow(cp x,int p){ s=cp(1,0);
for(;p;p>>=1,x=x*x) if(p&1) s=s*x; return s.x;
}
inline void Solv(){
n=read(),A=read(),B=read(),p=read();
A%=p,B%=p,print(qpow(cp(B,1),n));
}
signed main(){ int T=read();
while(T--) Solv(); return Ot(),0;
}

最新文章

  1. AWK命令学习
  2. Setting up SSL for SCM-Manager with Microsoft CA and TortoiseHg
  3. CSRF 攻击介绍
  4. RSS(Residual Sum of Squares)的自由度为什么是n-1呢
  5. 信号处理基础概念比较----频谱vs功率谱vs能谱
  6. No Assistant Results
  7. scp 指定端口
  8. FileInputStream and FileOutputStream
  9. UVALive 7079 - How Many Maos Does the Guanxi Worth(最短路Floyd)
  10. zabbix电话告警V1
  11. 分析jQuery中的each方法
  12. 【转】java.lang.StackOverflowError
  13. [转载+整理]JVM性能调优----JVM架构
  14. centos7 安装nodejs,git
  15. Zookeeper 客户端API调用示例(基本使用,增删改查znode数据,监听znode,其它案例,其它网络参考资料)
  16. SVN简介与安装
  17. freeSSHD在windows环境下搭建SFTP服务器
  18. eclipse中的出现在打包一次后,后面新建的项目都出错了,出现support_v7下面出现红线及解决方法及为什么eclipse中项目继承ActionBarActivity解决方法一样
  19. 【原】Java学习笔记014 - 面向对象
  20. luogu P1744 采购特价商品

热门文章

  1. sh_10_字典基本使用
  2. AtCoder AGC037D Sorting a Grid (二分图匹配)
  3. perl基础-2
  4. C++入门经典-例2.8-输出整数,控制打印格式
  5. Mysql 实用语句记录
  6. P5436 【XR-2】缘分
  7. windows+VS+Openjdk12 搭建debug环境
  8. defineProperty
  9. python 实验2 分支结构
  10. Delphi实现带有格式的Excel导出功能