CF717A Festival Organization

"本文探讨了如何利用斐波那契数列解决一个关于选择长度在[l,r]区间内,仅含0和1且无连续0的合法字符串的问题,通过递推关系和组合数学技巧,给出了计算选法总数的高效算法。关键步骤包括矩阵幂运算和模(10^9+7)的扩展域计算。"
摘要由CSDN通过智能技术生成

更好的阅读体验

题意

一个合法的串定义为:长度在 \([l, r]\) 之间,且只含 \(0,1\),并且不存在连续 \(2\) 个或更多的 \(0\).
现在要选出 \(k\) 个长度相同的不同的合法的串,问有几种选法,答案模 \(10^9+7\).

\(1\le l\le r\le10^{18}, 1\le k\le200\).

题解

\(F_{i,j}\) 表示长度为 \(i\), 以 \(j\) 结尾的合法串个数.
有 $$\left{
\begin{array}{lr}
F_{i,0}=F_{i-1,1} & \
F_{i,1}=F_{i-1,0}+F_{i-1,1} &
\end{array}
\right.$$
即 $$\left{
\begin{array}{lr}
F_{i,0}=\text{Fib}{i} & \
F
=\text{Fib}{i+1} &
\end{array}
\right.$$
所以答案 $$\text{Ans}=\sum\limits
\begin{pmatrix}\text{Fib}_i\k\end{pmatrix}$$

\[\begin{align*} \text{Ans} =&\sum_{l+2\leq i\leq r+2} \begin{pmatrix}{\text{Fib}_i}\\k\end{pmatrix}\\ =&\frac{1}{k!}\sum_{l+2\le i\le r+2} {\text{Fib}_i}^{\underline{k}}\\ =&\frac{1}{k!}\sum_{l+2\le i\le r+2}\sum_{1\le j\le k}(-1)^{k-j}\begin{bmatrix}k\\ j \end{bmatrix}{\text{Fib}_i}^j\\ =&\frac{1}{k!}\sum_{1\le i\le k}(-1)^{k-i}\begin{bmatrix}k\\ i \end{bmatrix}\sum_{l+2\le j\le r+2}{\text{Fib}_j}^i \end{align*} \]

考虑带入斐波那契数的通项,令 \(A=\frac{1+\sqrt{5}}{2}, B=\frac{1-\sqrt{5}}{2}\)

\[\begin{align*} \text{Ans} =&\frac{1}{k!}\sum_{1\le i\le k}(-1)^{k-i}\begin{bmatrix}k\\ i \end{bmatrix}\sum_{l+2\le j\le r+2}[{\frac{1}{\sqrt{5}}(A^j-B^j)}]^i\\ =&\frac{1}{k!}\sum_{1\le i\le k}(-1)^{k-i}\begin{bmatrix}k\\ i \end{bmatrix}(\frac{1}{\sqrt{5}})^i\sum_{l+2\le j\le r+2}\sum_{0\le p\le i}\begin{pmatrix}i\\p\end{pmatrix}(-1)^p(A^{i-p}B^p)^j\\ =&\frac{1}{k!}\sum_{1\le i\le k}(-1)^{k-i}\begin{bmatrix}k\\ i \end{bmatrix}(\frac{1}{\sqrt{5}})^i\sum_{0\le j\le i}\begin{pmatrix}i\\j\end{pmatrix}(-1)^j\sum_{l+2\le p\le r+2}(A^{i-j}B^j)^p \end{align*} \]

等比数列求和快速计算式子后面部分\(\Theta(k^2\times(\log l+\log r))\)

细节

本题涉及对 \(\sqrt{5}\) 的计算,然而在模 \(10^9+7\) 意义下 \(5\) 没有二次剩余,扩域维护即可

代码 codeforces submission 137205589

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值