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 & ...
随机推荐
- 学习JSP篇:jsp简单介绍
这几天开始学习JSP和Servlet,写些博客,记录自己的学习过程,算是自己从业开始的一个见证. 一.什么是JSP JSP的全称是Java Service Page,一种动态的网页开发技术,区别于静态 ...
- JMeter压力测试简单使用
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11915535.html JMeter压力测试简单使用: 我们可以使用JMeter来测试一下自己 ...
- Mybatis返回插入数据的主键的两种方式
方式一: 需要在映射文件中添加如下片段: <insert id="insertProduct" parameterType="domain.model.Produc ...
- JavaWeb开发获取客户IP地址
原创:转载需注明原创地址 https://www.cnblogs.com/fanerwei222/p/11737637.html 本地调试如果使用的是localhost进行访问, 则会获取到 0:0: ...
- go基础——切片slice
package main import "fmt" /* 切片: 不定长的数组,是引用类型的数据,指向一个底层数组. */ func main() { //切片的创建和访问 var ...
- Scala概述及环境配置
一.概述 1.1 为什么要学Scala? Spark是新一代的内存级大数据的计算框架,是大数据学习的重要内容.随着Spark的兴起,同时也带动了Scala的学习,因为Spark就是Scala编写的.为 ...
- SpringMVC5中,@ModelAttribute注解详解
看这个注解的前提最好熟悉一下SpringMVC的model组件,该注解可以有五种使用方式: ①②③为 @ModelAttribute 跟@RequestMapping 分开修饰方法,被@ModelAt ...
- Solution -「ACM-ICPC BJ 2002」「POJ 1322」Chocolate
\(\mathcal{Description}\) Link. \(c\) 种口味的的巧克力,每种个数无限.每次取出一个,取 \(n\) 次,求恰有 \(m\) 个口味出现奇数次的概率. \( ...
- OpenHarmony移植案例与原理:startup子系统之syspara_lite系统属性部件
摘要:本文介绍下移植开发板时如何适配系统属性部件syspara_lite,并介绍下相关的运行机制原理. 本文分享自华为云社区<openharmony移植案例与原理 - startup子系统之sy ...
- Java不支持协程?那是你不知道Quasar!
原创:微信公众号 码农参上,欢迎分享,转载请保留出处. 在编程语言的这个圈子里,各种语言之间的对比似乎就一直就没有停过,像什么古早时期的"PHP是世界上最好的语言"就不提了,最近我 ...