Link

设\(e=\frac{b+\sqrt d}2,i=\frac{b-\sqrt d}2\)。

显然\(f_n=e^n+i^n\)是一个整数,且\(f_n=(e+i)f_{n-1}+eif_{n-2}\)。

递推式中的\(e+i=b,ei=\frac{b^2-d}4\),根据题目条件这两个也是整数。

因此我们可以利用矩阵快速幂求出\(f_n\bmod P\)。

显然\(i\in(-1,0]\),因此\(i^n\in(-1,0]\),因此\(\lfloor e^n\rfloor\equiv f_n-\lceil |i^n|\rceil\pmod P\),直接判断即可。

#include<cstdio>
#include<cstring>
using u64=unsigned long long;
const u64 P=7528443412579576937ll;
u64 inc(u64 a,u64 b){return a+=b,a>=P? a-P:a;}
u64 mul(u64 a,u64 b){u64 r=0;for(;b;b>>=1,a=inc(a,a))if(b&1)r=inc(a,r);return r;}
struct matrix{u64 a[3][3];matrix(){memset(a,0,72);}u64*operator[](int x){return a[x];}}E,I;
matrix operator*(matrix a,matrix b)
{
matrix c;
for(int i=1;i<=2;++i) for(int j=1;j<=2;++j) for(int k=1;k<=2;++k) c[i][j]=inc(c[i][j],mul(a[i][k],b[k][j]));
return c;
}
int main()
{
u64 b,d,n;int f;
scanf("%llu%llu%llu",&b,&d,&n);
if(!n) return !printf("1");
f=--n&1,E[1][2]=(d-b*b)/4,E[2][1]=1,E[2][2]=b,I[1][1]=I[2][2]=1;
for(;n;n>>=1,E=E*E) if(n&1) I=E*I;
printf("%llu",inc(mul(2,I[1][2]),mul(b,I[2][2]))-(d*d^b&&f));
}

Luogu P3263 [JLOI2015]有意义的字符串的更多相关文章

  1. 洛谷 P3263 [JLOI2015]有意义的字符串

    洛谷 首先,看到\((\frac{(b+\sqrt{d})}{2})^n\),很快能够想到一元二次方程的解\(\frac{-b\pm\sqrt{\Delta}}{2a}\). 所以可以推出,\(\fr ...

  2. BZOJ_4002_[JLOI2015]有意义的字符串_矩阵乘法

    BZOJ_4002_[JLOI2015]有意义的字符串_矩阵乘法 Description B 君有两个好朋友,他们叫宁宁和冉冉.有一天,冉冉遇到了一个有趣的题目:输入 b;d;n,求 Input 一行 ...

  3. 【BZOJ4002】[JLOI2015]有意义的字符串(数论,矩阵快速幂)

    [BZOJ4002][JLOI2015]有意义的字符串(数论,矩阵快速幂) 题面 BZOJ 洛谷 题解 发现我这种题总是做不动... 令\(A=\frac{b+\sqrt d}{2},B=\frac{ ...

  4. 【BZOJ4002】[JLOI2015]有意义的字符串 数学

    [BZOJ4002][JLOI2015]有意义的字符串 Description B 君有两个好朋友,他们叫宁宁和冉冉.有一天,冉冉遇到了一个有趣的题目:输入 b;d;n,求 Input 一行三个整数 ...

  5. [JLOI2015]有意义的字符串

    4002: [JLOI2015]有意义的字符串 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 1000  Solved: 436[Submit][St ...

  6. 【BZOJ4002】[JLOI2015]有意义的字符串 - 矩阵乘法

    题意: 给出b,d,n,求$\lfloor(\frac{b+\sqrt{d}}{2})^n\rfloor \mod 999999999999999989$(原题是7528443412579576937 ...

  7. 【BZOJ】4002: [JLOI2015]有意义的字符串

    题意 求$\left \lfloor \left( \frac{b+\sqrt{d}}{2} \right)^n \right \rfloor \pmod {7528443412579576937} ...

  8. BZOJ4002 [JLOI2015]有意义的字符串

    据说这两场加起来只要170= =而这是最简单的题目了QAQ 看到$(\frac {b + \sqrt {d} } {2} )^n$,第一反应是共轭根式$(\frac {b - \sqrt {d} } ...

  9. bzoj 4002: [JLOI2015]有意义的字符串

    这个题... #include <bits/stdc++.h> #define rep(i, a, b) for (int i = a; i <= b; i++) #define d ...

随机推荐

  1. SpringMVC中在Controller类的每个方法执行前调用某个方法的实现

    在使用SpringMVC做项目的时候,如果想在@Controller类中每个@RequestMapping方法执行前都调用某个方法,要怎么实现呢?答案是使用Spring的@ModelAttribute ...

  2. solve License Key is legacy format when use ACTIVATION_CODE activate jetbrains-product 2019.3.1

    1.the java-agent and ACTIVATION_CODE can get from this site:https://zhile.io/2018/08/25/jetbrains-li ...

  3. 笔记-AJAX

    笔记-AJAX 1.      简介 Ajax 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML AJAX 是一种用于创建快速动态网页的技术 ...

  4. 简单描述MySQL常用引擎的特点及MySQL的逻辑架构

    目录 表的分类数据库引擎? 首先得说说mysql的逻辑架构,它整体分为3层: 常用引擎: 补充知识点: 表的分类数据库引擎? 引擎是什么? 引擎就是一个系统最核心的部分,比如汽车的发动机,人的心脏 数 ...

  5. 5 HTML脚本&字符实体&URL

    HTML脚本: 用<script>标签定义客户端脚本,比如JavaScript script元素即可包含脚本语句,也可以通过src属性指向外部脚本文件 JavaScript常用于图片操作. ...

  6. 2019年5月17日A股暴跌行情思考

    2019年5月17日A股暴跌行情思考 原因:特朗普针对华为的禁商令,人民币对美元汇率大跌 盘面:平开,单边下跌,收盘80多股跌停 操作:下午2点加仓,满仓 总结: 本次操作太过激进. 局势不明朗时抄底 ...

  7. git github 对代码的管理

    参考:https://www.cnblogs.com/feynman61/p/9005252.html 一.Git 对远程仓库版本回退 场景: 同事 a.b 同时修改了代码,提交到仓库 同时 c 不熟 ...

  8. spm_hrf

    a=spm_hrf(0.72); n1=MOTOR_taskdesign(1,:);cn1=conv(n1,a);plot(cn1); block design hrf

  9. 科软-信息安全实验3-Rootkit劫持系统调用

    目录 一 前言 二 Talk is cheap, show me the code 三 前期准备 四 效果演示 五 遇到的问题&解决 六 18.04的坑 七 参考资料 八 老师可能的提问 一 ...

  10. 微软结合Veritas,使用Azure云中的混合存储

    导读 在与Symantec(Symantec)脱离10年(通常令人不愉快的关系)一周年之际,Veritas Technologies在2月22日宣布与Microsoft Corp. 建立了多年战略全球 ...