Solution -「国家集训队」「洛谷 P4451」整数的 lqp 拆分
\(\mathcal{Description}\)
Link.
求
\]
其中 \(f_i\) 为 Fibonacci 数列第 \(i\) 项(\(f_0=0,f_1=1\)),答案对 \(10^9+7\) 取模。
\(n\le10^{10^4}\)。
\(\mathcal{Solution}\)
记 \(F(x)\) 为 \(\{f\}\) 的 OGF,首先来推导 \(F(x)\)。根据定义 \(f_{n+2}=f_{n+1}+f_n\),可以发现经过适当位移,\(F(x)\) 能推出其自身而解出表达式。具体地:
&~~~~~~~~~~~xF(x)+F(x)=\frac{1}xF(x)-1\\
&\Rightarrow~~~~(x+1-\frac{1}x)F(x)=-1\\
&\Rightarrow~~~~F(x)=\frac{x}{1-x-x^2}
\end{aligned}
\]
令 \(n\) 的答案为 \(g_n\),\(g_0=1\)。简单 DP 得出递推式:
\]
显然的卷积关系。令 \(\{g\}\) 的 OGF 为 \(G(x)\),则:
G(x)&=1+G(x)F(x)\\
&=\frac{1}{1-F(x)}\\
&=\frac{1-x-x^2}{1-2x-x^2}
\end{aligned}
\]
提出一些常数:
\]
我们想求 \(g_n\),即 \([x^n]G(x)\),就得把上式最后一项分式结构配凑成等比数列求和的形式。首先暴力因式分解 \(x^2+2x-1\),用求根公式求出其两根:
\]
所以 \(x^2+2x-1=(x-x_1)(x-x_2)\)。代入 \(G(x)\) 的表达式:
G(x)&=1-\frac{x}{(x-x_1)(x-x_2)}\\
&=1-\frac{x}{x_1-x_2}\left(\frac{1}{x-x_1}-\frac{1}{x-x_2} \right)\\
&=1-\frac{x}{x_1-x_2}\left(\frac{1}{x_2}\sum_{i=0}^{+\infty}\frac{x^i}{x_2^i}-\frac{1}{x_1}\sum_{i=0}^{+\infty}\frac{x^i}{x_1^i} \right)\\
&=1-\frac{1}{x_1-x_2}\sum_{i=1}^{+\infty}(x_2^{-i}-x_1^{-i})x^i
\end{aligned}
\]
拆得清清楚楚啦,答案:
\]
代入 \(x_{1,2}\):
\]
最后 \(\sqrt2\equiv 59713600\equiv 940286407\pmod{10^9+7}\),所以可以 \(\mathcal O(\log p+\log n)\)(\(p\) 是素模数)直接算出来。
\(\mathcal{Code}\)
/* Clearink */
#include <cstdio>
const int INV4 = 250000002, S2 = 59713600, MOD = 1e9 + 7;
inline int rmod () {
int x = 0; char s = getchar ();
for ( ; s < '0' || '9' < s; s = getchar () );
for ( ; '0' <= s && s <= '9'; s = getchar () ) {
x = ( x * 10ll + ( s ^ '0' ) ) % ( MOD - 1 );
}
return x;
}
inline int mul ( const long long a, const int b ) { return a * b % MOD; }
inline int sub ( int a, const int b ) { return ( a -= b ) < 0 ? a + MOD : a; }
inline int add ( int a, const int b ) { return ( a += b ) < MOD ? a : a - MOD; }
inline int mpow ( int a, int b ) {
int ret = 1;
for ( ; b; a = mul ( a, a ), b >>= 1 ) ret = mul ( ret, b & 1 ? a : 1 );
return ret;
}
int main () {
int n = rmod ();
printf ( "%d\n", sub ( 0, mul ( mul ( S2, INV4 ),
sub ( mpow ( sub ( 1, S2 ), n ), mpow ( add ( 1, S2 ), n ) ) ) ) );
return 0;
}
Solution -「国家集训队」「洛谷 P4451」整数的 lqp 拆分的更多相关文章
- P4827「国家集训队」 Crash 的文明世界
「国家集训队」 Crash 的文明世界 提供一种不需要脑子的方法. 其实是看洛谷讨论版看出来的( (但是全网也就这一篇这个方法的题解了) 首先这是一个关于树上路径的问题,我们可以无脑上点分治. 考虑当 ...
- 「国家集训队」middle
「国家集训队」middle 传送门 按照中位数题的套路,二分答案 \(mid\),序列中 \(\ge mid\) 记为 \(1\),\(< mid\) 的记为 \(-1\) 然后只要存在一个区间 ...
- 「国家集训队」小Z的袜子
「国家集训队」小Z的袜子 传送门 莫队板子题. 注意计算答案的时候,由于分子分母都要除以2,所以可以直接约掉,这样在开桶算的时候也方便一些. 参考代码: #include <algorithm& ...
- 「区间DP」「洛谷P1043」数字游戏
「洛谷P1043」数字游戏 日后再写 代码 /*#!/bin/sh dir=$GEDIT_CURRENT_DOCUMENT_DIR name=$GEDIT_CURRENT_DOCUMENT_NAME ...
- 「洛谷1903」「BZOJ2120」「国家集训队」数颜色【带修莫队,树套树】
题目链接 [BZOJ传送门] [洛谷传送门] 题目大意 单点修改,区间查询有多少种数字. 解法1--树套树 可以直接暴力树套树,我比较懒,不想写. 稍微口胡一下,可以直接来一个树状数组套主席树,也就是 ...
- Solution -「JSOI 2019」「洛谷 P5334」节日庆典
\(\mathscr{Description}\) Link. 给定字符串 \(S\),求 \(S\) 的每个前缀的最小表示法起始下标(若有多个,取最小的). \(|S|\le3\time ...
- Solution -「洛谷 P4372」Out of Sorts P
\(\mathcal{Description}\) OurOJ & 洛谷 P4372(几乎一致) 设计一个排序算法,设现在对 \(\{a_n\}\) 中 \([l,r]\) 内的元素排 ...
- Solution -「POI 2010」「洛谷 P3511」MOS-Bridges
\(\mathcal{Description}\) Link.(洛谷上这翻译真的一言难尽呐. 给定一个 \(n\) 个点 \(m\) 条边的无向图,一条边 \((u,v,a,b)\) 表示从 ...
- Solution -「APIO 2016」「洛谷 P3643」划艇
\(\mathcal{Description}\) Link & 双倍经验. 给定 \(n\) 个区间 \([a_i,b_i)\)(注意原题是闭区间,这里只为方便后文描述),求 \(\ ...
随机推荐
- 物理机异常断电,linux虚拟机系统磁盘mount失败,导致无法启动; kubectl 连接失败
虚拟机 CentOS 7 挂载文件系统失败 上周五下班前没有关闭虚拟机和物理机, 今天周一开了虚拟机之后,发现操作系统启动失败. 原因跟 这篇文章描述的一模一样. 解决操作系统的文件系统挂载的问题之后 ...
- 小程序云开发请求第三方http或https接口
1.新建http云函数,选中http云函数,右键,打开终端,安装依赖: npm install request-promise 2.http.js引入request-promise用于做网络请求 va ...
- 阿里神器 Seata 实现 TCC模式 解决分布式事务,真香!
今天这篇文章介绍一下Seata如何实现TCC事务模式,文章目录如下: 什么是TCC模式? TCC(Try Confirm Cancel)方案是一种应用层面侵入业务的两阶段提交.是目前最火的一种柔性事务 ...
- 计算机视觉2-> 深度学习 | anaconda+cuda+pytorch环境配置
00 想说的 深度学习的环境我配置了两个阶段,暑假的时候在一个主攻视觉的实验室干活,闲暇时候就顺手想给自己的Ubuntu1804配置一个深度学习的环境.这会儿配到了anaconda+pytorch+c ...
- leetcode 986. 区间列表的交集
问题描述 给定两个由一些 闭区间 组成的列表,每个区间列表都是成对不相交的,并且已经排序. 返回这两个区间列表的交集. (形式上,闭区间 [a, b](其中 a <= b)表示实数 x 的集合, ...
- 『德不孤』Pytest框架 — 3、Pytest的基础说明
目录 1.Pytest参数介绍 2.Pytest框架用例命名规则 3.Pytest Exit Code说明 4.pytest.ini全局配置文件 5.Pytest执行测试用例的顺序 1.Pytest参 ...
- SpringMVC注解式开发-RequestMapping放到类上
功能一:请求地址公共部分,模块名称 (放在类) 功能二:
- spring内嵌cglib包,这里藏着一个大坑
问题发现 2022-01-21 早上 9 点,订单系统出现大面积的"系统未知错误"报错,导致部分用户无法正常下单.查询后台日志,可以看到大量的 duplicate class at ...
- 不难懂——CSS 匹配指定name元素
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name ...
- python列表和索引--7
备注:列表元素索引下限从0开始,列表用[ ]表示