![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
矩阵快速幂(线性递推)
mayaohua2003
这个作者很懒,什么都没留下…
展开
-
Codeforces 575A
这是个线性递推,可以用2∗22*22∗2的矩乘转移,没有特殊位置的话可以直接快速幂。现在有特殊数字,这也不难。考虑按特殊位置分段,段内直接转移,特殊位置再特殊乘一下。有个比较麻烦的情况是两个特殊位置可能距离<n<n<n,这种情况下我们可以拿个线段树查询一下区间矩阵乘积。时间复杂度O(nlogn)\mathcal O(n\log n)O(nlogn)。#include &l...原创 2019-11-08 22:12:58 · 159 阅读 · 0 评论 -
Codeforces 506E
一个神秘的题。我们考虑如何判定一个串是否可以被匹配,显然是贪心的从两侧往中间匹配,这样可以写一个O(s2n)\mathcal O(s^2n)O(s2n)的暴力DP,你可以用矩阵快速幂优化到O(s6logn)\mathcal O(s^6\log n)O(s6logn)啥的。正解是神仙的自动机DP,但是。。。作为新时代的好青年,我们选择BM,可以打表发现答案有个O(n)\mathcal O(n)...原创 2019-11-05 22:34:40 · 353 阅读 · 0 评论 -
Codeforces 576D
转移是可以矩乘的,用bitsetbitsetbitset优化的话可以做到O(n3w)\mathcal O(\frac{n^3}{w})O(wn3)乘法。考虑按did_idi排序,用矩阵快速幂先确定一个大致的时间区间。然后固定了用的边情况下,我们最多走n−1n-1n−1步,一步步乘过去就好了,这一部分乘的是向量。因此总复杂度O(n3mlogVw)\mathcal O(\frac{n^3m\...原创 2019-11-04 21:42:24 · 219 阅读 · 0 评论