p=q−233,q(q−233)=666p=q−233,q(q−233)=666 即q2−233q−666=0q2−233q−666=0 解得q=233±√569532q=233±569532 通过循环暴力查找,我们发现1883058372≡56953(mod109+7)1883058372≡56953(mod109+7) 然后我们就可以用1883058371
我们将初始矩阵的n次方进行分块处理 设初始矩阵为AA 即求出A1,A2……Alen−1A1,A2……Alen−1,记为SS 以及Alen,Alen∗2……Alen∗lenAlen,Alen∗2……Alen∗len,记为PP 然后我们会发现,这两个对应的矩阵序列都可以在O(n−−√)O(n)的时间范围内递推出来 最后答案即为S[n−n/len]∗...
P5110 块速递推 特征方程+矩阵光速幂。 特征方程明显为 \(x^2-233x-666=0\) \(\Delta=233^2+4\times 666=56953\) \(\therefore a=\dfrac{233-\sqrt{56953}}{2}\)、\(b=\dfrac{-233-\sqrt{56953}}{2}\)。 \(\therefore x_n=\alpha a^n+\beta b^n\) \(\alpha+\beta=0,a\alpha+b...
洛谷P5110 块速递推 [分块] 传送门 思路 显然可以特征根方程搞一波(生成函数太累),得到结果: an=113√337[(233+13√3372)n−(233+13√3372)n]an=113337[(233+133372)n−(233+133372)n] (其实我也不知道是不是,网上抄的,懒得算了) 放在模意义下,得到 an=233230706×(94153035n−905847205n)(mo...
【洛谷 P5110】 块速递推(矩阵加速,分块打表) 题目链接 掌握了分块打表法了。原来以前一直想错了。。。 块的大小size=√nsize=n,每隔sizesize个数打一个表,还要在0~size−10~size−1每个数打一个表。 然后就可以做到O(1)O(1)查询了。 比如要求AnAn,只需要算出biao[n/size]∗pow[nmodsize]biao...
P5110 块速递推 题意 多次询问,求数列 ai=⎧⎨⎩233ai−1+666ai−2i>10i=01i=1ai={233ai−1+666ai−2i>10i=01i=1 的第nn项在mod1e9+7mod1e9+7意义下的值的异或和。 思路 首先这个数列是一个广义斐波那契数列。对于广义斐波那契数列,我们一般是用矩阵快速幂求的。
Luogu P5110 块速递推 传送门 又是一道常系数线性递推的题,一下子便能想到矩阵快速幂,但一看数据规模 1≤T≤5×1071≤T≤5×107 我们可以知道,普通的矩阵快速幂肯定是过不了的 显然,本题只能接受O(T)O(T)时间复杂度的方法(LYT:?) 考虑光速幂