BZOJ 5118
矩阵乘也是可以欧拉定理的HHH
所以幂次就是$(2^n-1) ~ mod ~ \varphi(p)$就好了
const ll p=1125899839733759ll;
inline ll mu(ll n,ll m,ll p){ll r=0;for(;m;m>>=1,n=(n+n)%p)if(m&1)r=(n+r)%p;return r;}
inline ll pw(ll n,ll m){ll r=1;for(;m;m>>=1,n=mu(n,n,p-1))if(m&1)r=mu(r,n,p-1);return r;}
#define prm(a) //{For(i,0,2)For(j,0,2)printf("%lld%c",(a)[i][j]," \n"[j==1]);}
template<int H>struct Matrix{
ll a[H][H];Matrix(ll t=0){For(i,0,H)For(j,0,H)a[i][j]=(i!=j?0:t);}
ll*operator[](const int&t){return a[t];}
Matrix operator*(const Matrix&t)const{
Matrix r;
For(k,0,H)For(i,0,H)For(j,0,H)
r[i][j]=(r[i][j]+mu(a[i][k],t.a[k][j],p))%p;
return r;
}
Matrix operator^(ll k){Matrix r(1),n=*this;prm(r);for(;k;k>>=1,n=n*n)if(k&1)r=r*n;return r;}
};
Matrix<2>a;
int main(){
int T;ll n;cin>>T;
while(T--){
cin>>n;
n=pw(2ll,n)-1;
a[0][0]=a[0][1]=a[1][0]=1,a[1][1]=0;
a=a^(n);
prm(a);
cout<<a[0][0]<<endl;
}
}
还有一个奇怪的操作:
$\sqrt{5}$ 在这个模数的意义下是存在的,所以直接带入 $f_n = \dfrac{\sqrt{5}}{5}[(\dfrac{\sqrt{5}+1}{2})^n+(\dfrac{1-\sqrt{5}}{5})^n]$
BZOJ 5118的更多相关文章
- BZOJ 2127: happiness [最小割]
2127: happiness Time Limit: 51 Sec Memory Limit: 259 MBSubmit: 1815 Solved: 878[Submit][Status][Di ...
- BZOJ 3275: Number
3275: Number Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 874 Solved: 371[Submit][Status][Discus ...
- BZOJ 2879: [Noi2012]美食节
2879: [Noi2012]美食节 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1834 Solved: 969[Submit][Status] ...
- bzoj 4610 Ceiling Functi
bzoj 4610 Ceiling Functi Description bzoj上的描述有问题 给出\(n\)个长度为\(k\)的数列,将每个数列构成一个二叉搜索树,问有多少颗形态不同的树. Inp ...
- BZOJ 题目整理
bzoj 500题纪念 总结一发题目吧,挑几道题整理一下,(方便拖板子) 1039:每条线段与前一条线段之间的长度的比例和夹角不会因平移.旋转.放缩而改变,所以将每条轨迹改为比例和夹角的序列,复制一份 ...
- 【sdoi2013】森林 BZOJ 3123
Input 第一行包含一个正整数testcase,表示当前测试数据的测试点编号.保证1≤testcase≤20. 第二行包含三个整数N,M,T,分别表示节点数.初始边数.操作数.第三行包含N个非负整数 ...
- 【清华集训】楼房重建 BZOJ 2957
Description 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房.每天,这片工地上的房子拆了又建.建了又拆.他经常无聊地看着窗外发呆,数自己能够看到多少栋房子. 为了简化问题,我们考虑这些 ...
- 【splay】文艺平衡树 BZOJ 3223
Description 您需要写一种数据结构(可参考题目标题),来维护一个有序数列,其中需要提供以下操作:翻转一个区间,例如原有序序列是5 4 3 2 1,翻转区间是[2,4]的话,结果是5 2 3 ...
- bzoj 刷水
bzoj 3856: Monster 虽然是sb题,,但是要注意h可能<=a,,,开始忘记判了WA得很开心. #include <iostream> #include <cst ...
随机推荐
- Python系列之 - 前端总结
1. python序列化: 字符串 = json.dumps(对象) 对象->字符串 对象 = json.loads(字符串) 字符串->对象 Javascript: 字符串 = JSON ...
- django - 总结 - 中间件
中间件顾名思义,是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出.因为改变的是全局,所以需要谨慎实用,用不好会影响到性能. MID ...
- 微信小程序 mpvue vant
Mpvue中使用Vant Weapp组件库 https://segmentfault.com/a/1190000016228410?utm_source=tag-newest 小程序采坑记 mpvue ...
- mysql 分库分表 ~ ShardingSphere生态圈
一 简介 Apache ShardingSphere是一款开源的分布式数据库中间件组成的生态圈二 成员包含 Sharding-JDBC是一款轻量级的Java框架,在JDBC层提供上述核心功能 ...
- linux 下nginx 集群CAS单点登录实现
1.单点登录服务器CAS应用配置于tomcat下. 1)key生成: keytool -genkey -alias mycas -keyalg RSA -keysize 2048 -keystore ...
- Bootstrap3 模态框 select2搜索框无法输入
<div class="modal fade" role="dialog" aria-hidden="true" data-backd ...
- Sublime text3 连接sftp/ftp(远程服务器)
1.按下Ctrl + Shift + P调出命令面板2.在输入框中输入Sftp,按回车下载3.建一个新的文件夹放到左边的项目栏中4.右击文件夹,选中SFTP/FTP,点击Map to Remote5. ...
- 10张思维导图带你学习JavaScript
10张思维导图带你学习JavaScript 下面将po出10张JavaScript相关的思维导图. 分别归类为: JavaScript变量 JavaScript运算符 JavaScript数组 ...
- $Django 支付宝支付,微信服务号推送消息 (测试需要把应用程序部署到服务器上)
一 支付宝支付 大概 支付宝支付 正式环境:需要用营业执照去申请商户号,appid 测试环境:沙箱环境:https://openhome.alipay.com/platform/appDaily.ht ...
- 【原创】大叔经验分享(11)python引入模块报错ImportError: No module named pandas numpy
python应用通常需要一些库,比如numpy.pandas等,安装也很简单,直接通过pip # pip install numpyRequirement already satisfied: num ...