ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

数学题和光速幂

2022-09-09 20:30:47  阅读:186  来源: 互联网

标签:frac 光速 32 复杂度 times alpha 数学题 cases


P5517 [MtOI2019]幻想乡数学竞赛

\[a_n=\begin{cases} -3,&n=0\\ -6,&n=1\\ -12,&n=2\\ 3a_{n-1}+a_{n-2}-3a_{n-3}+3^n,&n>2 \end{cases}\]

注意到这是个常系数非齐次线性递推。

特征方程是

\[r^3-3r^2-r+3=0\\ (r-1)(r+1)(r-3)=0\]

解得特征根为

\[r_1=1,r_2=3,r_3=-1 \]

那么相伴线性齐次递推关系的一个解为

\[a_n=\alpha_1+3^n\alpha_2+(-1)^n\alpha_3 \]

注意到这个 \(3^n\),其底数为特征根,那么根据定理 \(6\),一个特解可以写成 \(a_n=nC3^n\) 的形式。

那么把它带进原式中,得到

\[nC3^n=3(n-1)C3^{n-1}+(n-2)C3^{n-2}-3(n-3)C3^{n-3}+3^n \]

解得 \(C=\frac{9}{8}\)。

因此原式解为

\[a_n=\alpha_1+3^n\alpha_2+(-1)^n\alpha_3+\frac{9}{8}\times 3^n\times n \]

带到初始条件里列方程组

\[\begin{cases} -3=\alpha_1+\alpha_2+\alpha_3\\ -6=\alpha_1+3\alpha_2-\alpha_3+\frac{27}{8}\\ -12=\alpha_1+9\alpha_2+\alpha_3+\frac{81}{4}\\ \end{cases}\]

经过一通爆算得

\[\begin{cases} \alpha_1=\frac{9}{8}\\ \alpha_2=-\frac{117}{32}\\ \alpha_3=\frac{15}{32}\\ \end{cases}\]

于是最终解就是

\[a_n=\frac{9}{8}-\frac{117\times 3^n}{32}+\frac{(-1)^n\times 15}{32}+\frac{9\times 3^n\times n}{8} \]

逆元可以预处理,复杂度瓶颈在算 \(3^n\) 上,朴素快速幂复杂度 \(O(T\log n)\),实际上 \(n\leq 2^{64}-1\),爆炸了!

然后考虑欧拉定理降幂后快速幂,这样复杂度为 \(O(T\log p)\),实际上 \(T\times\log p\leq 5\times 10^7\times 30=1.5\times 10^9\),也爆炸了!

接下来就需要光速幂。

考虑先降幂,然后对指数分块,设块长为 \(B\),对于每个 \(3^n\),我们将其分解为 \(3^{Bk+s}\),其中 \(s<B\),那么我们预处理出所有的 \(3^{Bk}\) 的值,其中 \(Bk\leq p\),这部分花费 \(O(\frac{p}{B})\),然后预处理所有的 \(3^{s}\) 的值,其中 \(s<B\),这部分花费 \(O(B)\),取 \(B=O(\sqrt{p})\),预处理时间 \(O(\sqrt{p})\),询问直接找到整块和散块的乘起来,时间复杂度 \(O(1)\)。

总时间复杂度 \(O(\sqrt{p}+T)\)。

标签:frac,光速,32,复杂度,times,alpha,数学题,cases
来源: https://www.cnblogs.com/yukari1735/p/16673890.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有