欢迎光临散文网 会员登陆 & 注册

P5678 [GZOI2017]河神 题解

2023-03-24 21:15 作者:fdsji  | 我要投稿

这道题显然是一道利用矩阵乘法优化递推的题目,毕竟给了一个数列的递推公式,但是:

A_n%20%3D%20%5Cbegin%7Bcases%7D%20a_n%20%26%200%20%5Cle%20n%20%3C%20K%20%5C%5C%20%5Coplus%20(A_%7Bn-K%2Bt%7D%20%5Cotimes%20b_t)%20%26%20n%20%5Cge%20K%20%20%5Cend%7Bcases%7D

——这是什么公式啊,没有正常的运算也就算了,还多了个 t,什么人啊~~~

那么我们得考虑推广矩阵乘法的运算法则,使得矩阵乘法仍然满足结合律但是却适应这道题目的特殊情况。或者说,我们需要找到加法、乘法运算和与、或运算的共通之处,从而进行推广。(这很像数学家干的事情啊,不是嘛)

我们可以考虑把加法变成或运算,乘法变成与运算。这里简要证明一下乘法变成与运算的合理性(也就是依然具有结合律):

((AB)C)_%7Bi%2Cj%7D 的第 d 位为 1 当且仅当至少存在一对 x%2Cy 使得 A_%7Bi%2Cx%7D%2C%20B_%7Bx%2Cy%7D%2C%20C_%7By%2Cj%7D 第 d 位全部为 1

(A(BC))_%7Bi%2Cj%7D 的第 d 位为 1 当且仅当至少存在一对 x%2Cy 使得 A_%7Bi%2Cx%7D%2C%20B_%7Bx%2Cy%7D%2C%20C_%7By%2Cj%7D 第 d 位全部为 1

——引自 q779 奆佬对本题的题解(洛谷P5678 [GZOI2017]河神 题解 | Q779的博客)

接下来我们就可以找到初始矩阵,即:

A%20%3D%20%5Cbegin%7Bbmatrix%7D%20a_k%20%26%20a_%7Bk-1%7D%20%26%20%5Ccdots%20%26%20a_0%20%5Cend%7Bbmatrix%7D

然后又有转移矩阵:

M%20%3D%20%5Cbegin%7Bbmatrix%7D%20b_1%20%26%20%2B%20%5Cinfty%20%26%200%20%26%20%5Ccdots%20%26%200%20%5C%5C%20b_2%20%26%200%20%26%20%2B%20%5Cinfty%20%26%20%5Ccdots%20%26%200%20%5C%5C%20b_3%20%26%200%20%26%200%20%26%20%5Ccdots%20%26%200%20%5C%5C%20%5Cvdots%20%26%20%5Cvdots%20%26%20%5Cvdots%20%26%20%5Cddots%20%26%20%5Cvdots%20%5C%5C%20b_%7Bk-1%7D%20%26%200%20%26%200%20%26%20%5Ccdots%20%26%20%2B%20%5Cinfty%20%5C%5C%20b_k%20%26%200%20%26%200%20%26%20%5Ccdots%20%26%200%20%5Cend%7Bbmatrix%7D

其中 %2B%20%5Cinfty 取 2%5E%7B63%7D-1

接着矩阵快速幂优化递推即可。

Code:


P5678 [GZOI2017]河神 题解的评论 (共 条)

分享到微博请遵守国家法律