博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[HNOI2019]白兔之舞(矩阵快速幂+单位根反演)
阅读量:4615 次
发布时间:2019-06-09

本文共 1303 字,大约阅读时间需要 4 分钟。

非常抱歉,这篇文章鸽了。真的没时间写了。

#include
using namespace std;typedef long long ll;#define cp complex
#define pi acosl(-1)const int N=6e5+7;struct mat{ll a[5][5];}A1,A2;ll n,k,l,X,Y,mod,w,nn,ans[N],a1[N],a2[N],R[N];cp A[N],B[N],C[N],D[N],E[N],F[N],G[N];ll qpow(ll a,ll b){ ll ret=1; while(b) { if(b&1)ret=ret*a%mod; a=a*a%mod,b>>=1; } return ret;}mat operator*(mat a,mat b){ mat c; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) { c.a[i][j]=0; for(int k=1;k<=n;k++)c.a[i][j]=(c.a[i][j]+a.a[i][k]*b.a[k][j])%mod; } return c;}mat qpow(mat a,ll b){ mat ret={
0}; for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(i==j)ret.a[i][j]=1; while(b) { if(b&1)ret=ret*a; a=a*a,b>>=1; } return ret;}ll getrt(ll x){ vector
vec;vec.clear(); for(ll i=2;i*i<=(x-1);i++)if((x-1)%i==0)vec.push_back(i),vec.push_back((x-1)/i); for(ll i=2;;i++) { bool c=1; for(unsigned j=0;j
>n>>k>>l>>X>>Y>>mod; for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)cin>>A1.a[i][j]; w=qpow(getrt(mod),(mod-1)/k); for(int j=0;j
>1]>>1)|((i&1)<
View Code

 

转载于:https://www.cnblogs.com/hfctf0210/p/10952262.html

你可能感兴趣的文章
如何建立合适的索引?
查看>>
acwing 651. 逛画展
查看>>
Vijos P1243 生产产品 (单调队列优化DP)
查看>>
iOS常用第三方库 -转
查看>>
Android布局学习
查看>>
jQuery中事件绑定与解绑
查看>>
js原生Ajax的封装与使用
查看>>
周总结6
查看>>
PostgreSQL 务实应用(二/5)插入冲突
查看>>
一种公众号回复关键词机制
查看>>
java多线程入门学习(一)
查看>>
基于 Web 的 Go 语言 IDE - Wide 1.1.0 公布!
查看>>
nyist oj 138 找球号(二)(hash 表+位运算)
查看>>
Movidius软件手册阅读 2017-09-04
查看>>
ytu 1910:字符统计(水题)
查看>>
201671030110 姜佳宇 实验三作业互评与改进
查看>>
mysql-5.6.15 开启二进制文件
查看>>
python的沙盒环境--virtualenv
查看>>
软件自动化测试——入门、进阶与实战
查看>>
BZOJ1878 [SDOI2009]HH的项链 树状数组 或 莫队
查看>>