【bzoj3328】PYXFIB 题解
来源:互联网 发布:photosynth替代软件 编辑:程序博客网 时间:2024/06/06 04:34
题目大意
这个题。。。
题解
代码
#include<cmath>#include<cstdio>#include<cstring>#define fo(i,a,b) for(int i=a;i<=b;i++)using namespace std;typedef long long LL;const int maxsqrtp=5e4+5;struct Arr{ LL n[2][2];};LL n,p;int k;LL mi(LL x,LL y){ LL re=1; for(; y; y>>=1, (x*=x)%=p) if (y&1) (re*=x)%=p; return re;}int g,p0,pr[maxsqrtp];void find_g(){ int sqrtp=sqrt(p), pp=p-1; p0=0; fo(i,2,sqrtp) if (pp%i==0) { pr[++p0]=i; while (pp%i==0) pp/=i; } if (pp>1) pr[++p0]=pp; for(g=2; ; g++) { bool pd=1; fo(i,1,p0) if (mi(g,(p-1)/pr[i])==1) {pd=0; break;} if (pd) return; }}Arr F,I;Arr mul(Arr a,Arr b){ Arr re; re.n[0][0]=(a.n[0][0]*b.n[0][0]+a.n[0][1]*b.n[1][0])%p; re.n[0][1]=(a.n[0][0]*b.n[0][1]+a.n[0][1]*b.n[1][1])%p; re.n[1][0]=(a.n[1][0]*b.n[0][0]+a.n[1][1]*b.n[1][0])%p; re.n[1][1]=(a.n[1][0]*b.n[0][1]+a.n[1][1]*b.n[1][1])%p; return re;}Arr mulnum(Arr a,LL b){ (a.n[0][0]*=b)%=p; (a.n[0][1]*=b)%=p; (a.n[1][0]*=b)%=p; (a.n[1][1]*=b)%=p; return a;}Arr plusI(Arr a){ (a.n[0][0]+=1)%=p; (a.n[1][1]+=1)%=p; return a;}Arr Mi(Arr x,LL y){ Arr re=I; for(; y; y>>=1, x=mul(x,x)) if (y&1) re=mul(re,x); return re;}int T;int main(){ F.n[0][0]=F.n[0][1]=F.n[1][0]=1; F.n[1][1]=0; I.n[0][0]=I.n[1][1]=1; scanf("%d",&T); while (T--) { scanf("%lld %d %lld",&n,&k,&p); find_g(); LL w0=mi(g,(p-1)/k); LL ans=0, w=1; fo(j,0,k-1) { Arr t=Mi(plusI(mulnum(F,w)),n); (ans+=t.n[0][0])%=p; (w*=w0)%=p; } printf("%lld\n",ans*mi(k,p-2)%p); }}
0 0
- 【bzoj3328】PYXFIB 题解
- [bzoj3328]PYXFIB
- [BZOJ3328]PYXFIB/[JZOJ5150]却不悔付此华年
- 【BZOJ 3328】PYXFIB
- bzoj 3328: PYXFIB 数论&矩阵乘法
- OpenJudge 1058 Guideposts | BZOJ 3328 PYXFIB
- BZOJ 3328: PYXFIB 二项式定理 原根 构造
- [数论][二项式定理][矩阵乘法] BZOJ 3328: PYXFIB
- 题解
- 题解
- 题解
- 题解
- 题解
- 题解
- 题解
- 题解
- 题解
- 题解
- org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool问题解决方案
- 通过监听手势滑动解决DrawerLayout只能边缘打开抽屉问题
- 快速排序的递归实现
- 单链表反转
- Material Design 兼容性控件学习
- 【bzoj3328】PYXFIB 题解
- HDU
- (待更新理解)(数值过大素数计数模版)HDU 5901 Count primes
- Duplicate files copied in APK META-INF/LICENSE异常冲突解决
- ACM ArabellaCPC 2015 E题.二分or离散化
- HTTPweb服务器——HTTP整体设计框架
- java 网络编程(三)
- idea中war和war exploded的区别及修改jsp必须重新启动tomcat才能生效的问题(转)
- zy专区