博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU4565 So Easy! 矩阵快速幂
阅读量:5124 次
发布时间:2019-06-13

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

题目链接

题目

1322898-20190710104337131-76632363.png

思路

因为\((a-1)^{2}<b<a^2\),所以\((a-1)<\sqrt b < a\),因此\(a-\sqrt b < 1\),从而有\((a-\sqrt b)^{n}<1\)

\(C_{n}=(a+\sqrt b)^n+(a-\sqrt b)^n\),由上一段可以得知\(\lceil C_{n}\rceil = S_n\)
\(2aC_n=((a-\sqrt b)+(a+\sqrt b))C_n=(a-\sqrt b)C_n+(a+\sqrt b)C_n=C_{n+1}+(a^2-b)C_{n-1}\)
因此\(C_n\)具有线性递推式\(C_n=2aC_{n-1}+(b-a^2)C_{n-2}\)

代码实现如下

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;typedef long long LL;typedef pair
pLL;typedef pair
pLi;typedef pair
piL;;typedef pair
pii;typedef unsigned long long uLL;#define lson rt<<1#define rson rt<<1|1#define lowbit(x) x&(-x)#define name2str(name) (#name)#define bug printf("*********\n")#define debug(x) cout<<#x"=["<
<<"]" <
>= 1; } printf("%d\n", f[0] % m); } return 0;}

转载于:https://www.cnblogs.com/Dillonh/p/11162361.html

你可能感兴趣的文章
Android 获取网络链接类型
查看>>
linux中启动与终止lnmp的脚本
查看>>
gdb中信号的处理[转]
查看>>
LeetCode【709. 转换成小写字母】
查看>>
如何在Access2007中使用日期类型查询数据
查看>>
CF992E Nastya and King-Shamans(线段树二分+思维)
查看>>
第一个Java Web程序
查看>>
树状数组_一维
查看>>
如果没有按照正常的先装iis后装.net的顺序,可以使用此命令重新注册一下:
查看>>
linux install ftp server
查看>>
嵌入式软件设计第8次实验报告
查看>>
算法和数据结构(三)
查看>>
Ubuntu下的eclipse安装subclipse遇到没有javahl的问题...(2天解决了)
查看>>
alter database databasename set single_user with rollback IMMEDIATE 不成功问题
查看>>
WCF揭秘——使用AJAX+WCF服务进行页面开发
查看>>
【题解】青蛙的约会
查看>>
IO流
查看>>
mybatis调用存储过程,获取返回的游标
查看>>
设计模式之装饰模式(结构型)
查看>>
面向对象的设计原则
查看>>