LGP4451题解
题意明确,不再阐述(
首先,众所周知的是 斐波那契数列 的生成函数是 \(F(x)=\frac x {1-x-x^2}\)
那么答案就是 \(\sum_{i=0} F^i(x) = \frac 1 {1-F(x)} = \frac {1-x-x^2} {1-2x-x^2}\) 的第 \(n\) 项。
首先我们把分子和分母分开考虑,因为如果知道了分母所代表的生成函数的第 \(n\) 项,答案就很明显了。。。
尝试把 \(\frac 1 {1-2x-x^2}\) 分解成 \(\frac A {1-ax} - \frac B {1-bx}\) 的形式。
解 \(-x^2 -2x +1 =0\) 这个方程,得到 \(x_1 = -1 + \sqrt 2\),\(x_2 = -1 - \sqrt 2\)
根据因式定理可得:
\]
\]
然后我们发现 \(\frac 1 {-1 -\sqrt 2 -x} - \frac 1 {-1 +\sqrt 2 -x} = \frac {2\sqrt 2} {(-1 +\sqrt 2 -x)(-1 -\sqrt 2 -x)}\)
那么:
\]
看一下括号里边的东西,我们知道 \(\frac 1 {a - x} = \frac {\frac 1 a} {1 - \frac 1 a x}\),然后括号里变成了这样:
\]
显然,第 \(n\) 项为 \((1 +\sqrt 2)^{n+1} - (1 -\sqrt 2)^{n+1}\)
乘上右边的 $\frac 1 {2\sqrt 2} $ 和 $ 1 -x -x^2$,答案就是:
\]
化简可得:
\]
然后我们用二次剩余可知:
\]
那么就可以 \(O(\log mod)\) 愉快地做掉了。
代码:
#include<cctype>
#include<cstdio>
const int mod=1e9+7,MOD=mod-1,sqrt2=59713600ll;
inline int Add(const int&a,const int&b){
return a+b>=mod?a+b-mod:a+b;
}
inline int Del(const int&a,const int&b){
return a-b<0?a-b+mod:a-b;
}
inline int pow(int a,int b){
int ans=1;
for(;b;b>>=1,a=1ll*a*a%mod)if(b&1)ans=1ll*ans*a%mod;
return ans;
}
signed main(){
char s=getchar();int n=0;
while(n=(n*10ll+(48^s))%MOD,s=getchar(),s>=48&&s<=58);
printf("%d",1ll*sqrt2*pow(4,mod-2)%mod*Del(pow(Add(1,sqrt2),n),pow(Del(1,sqrt2),n))%mod);
}
LGP4451题解的更多相关文章
- 2016 华南师大ACM校赛 SCNUCPC 非官方题解
我要举报本次校赛出题人的消极出题!!! 官方题解请戳:http://3.scnuacm2015.sinaapp.com/?p=89(其实就是一堆代码没有题解) A. 树链剖分数据结构板题 题目大意:我 ...
- noip2016十连测题解
以下代码为了阅读方便,省去以下头文件: #include <iostream> #include <stdio.h> #include <math.h> #incl ...
- BZOJ-2561-最小生成树 题解(最小割)
2561: 最小生成树(题解) Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 1628 Solved: 786 传送门:http://www.lyd ...
- Codeforces Round #353 (Div. 2) ABCDE 题解 python
Problems # Name A Infinite Sequence standard input/output 1 s, 256 MB x3509 B Restoring P ...
- 哈尔滨理工大学ACM全国邀请赛(网络同步赛)题解
题目链接 提交连接:http://acm-software.hrbust.edu.cn/problemset.php?page=5 1470-1482 只做出来四道比较水的题目,还需要加强中等题的训练 ...
- 2016ACM青岛区域赛题解
A.Relic Discovery_hdu5982 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Jav ...
- poj1399 hoj1037 Direct Visibility 题解 (宽搜)
http://poj.org/problem?id=1399 http://acm.hit.edu.cn/hoj/problem/view?id=1037 题意: 在一个最多200*200的minec ...
- 网络流n题 题解
学会了网络流,就经常闲的没事儿刷网络流--于是乎来一发题解. 1. COGS2093 花园的守护之神 题意:给定一个带权无向图,问至少删除多少条边才能使得s-t最短路的长度变长. 用Dijkstra或 ...
- CF100965C题解..
求方程 \[ \begin{array}\\ \sum_{i=1}^n x_i & \equiv & a_1 \pmod{p} \\ \sum_{i=1}^n x_i^2 & ...
随机推荐
- homestead 入坑安装
1.在使用 Homestead 之前,需要先安装 Virtual Box.VMWare.Parallels 或 Hyper-V (四选一,我们通常选择 VirtualBox,因为只有它是免费的)以及 ...
- express源码分析之Router
express作为nodejs平台下非常流行的web框架,相信大家都对其已经很熟悉了,对于express的使用这里不再多说,如有需要可以移步到www.expressjs.com自行查看express的 ...
- 【转】Nginx服务并发过10万的Linux内核优化配置
http://www.linuxidc.com/Linux/2012-11/75151.htm以下Linux 系统内核优化配置均经在线业务系统测试,服务器运行状态良好,用了一些时间整理,现和大家分享一 ...
- ARC快速入门
1.ARC机制判断 iOS5以后,创建项目默认的都是ARC ARC机制下有几个明显的标志: 不允许调用对象的 release方法 不允许调用 autorelease方法 再重写父类的dealloc方法 ...
- 使用GDataXML生成、修改XML文档-陈棚
使用GDXML生成XML文档的步骤如下. 1.调用GDataXMLNode的elementWithName:方法创建GDataXMLElement对象,对象作为XML文档的根元素. 2.调用GData ...
- 无脑安装——Python 及 安装python集成开发环境pycharm
无脑安装--Python 及安装python集成开发环境pycharm 1.真机安装python 2.安装python集成开发环境pycharm Python 是一种解释型语言 Python 是面向对 ...
- Jetpack的ViewModel与LiveData
本文基于SDK 29 一.ViewModel与LiveData的作用: 1.viewModel: 数据共享,屏幕旋转不丢失数据,并且在Activity与Fragment之间共享数据. 2.LiveDa ...
- 1. 堪比JMeter的.Net压测工具 - Crank 入门篇
目录 堪比JMeter的.Net压测工具 - Crank 入门篇 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml 堪比JMeter的.Net压测工具 - Crank 进阶篇 ...
- ngixn隐藏版本号、指定404页面
1.场景:部分系统服务器端返回的HTTP头中,泄露了服务器采用的中间件信息(类型,版本)nginx,apache,攻击者可以缩小攻击范围,针对中间件存在的漏洞发起攻击 修改:ngixn/bin/ngi ...
- ctf平台
CTF靶场 蓝鲸安全:http://whalectf.xin bugku:https://ctf.bugku.com XCTF攻防世界:https://adworld.xctf.org.cn/ i春秋 ...