摘要:
"Link" 首先我们可以发现答案的两个串$t_1,t_2$一定是这样的形式:$t_1$是一个$pre/suf$,$t_2$紧挨着$t_1$。 不妨认为$t_1$是$pre$,对于$suf$只需要把原串翻转之后再做一遍即可。 那么我们可以对于所有的$s_{1,i}$,计算出最长的满足$s_{i+1, 阅读全文
posted @ 2020-02-15 20:22
Shiina_Mashiro
阅读(173)
评论(0)
推荐(0)
摘要:
"Link" 先求SA,并求出本质不同的子串数目。 然后二分答案$mid$,并求出排名为$mid$的子串$t$。 检验从后往前贪心,尽可能地让最后一个$suf$更长。 阅读全文
posted @ 2020-02-15 17:32
Shiina_Mashiro
阅读(105)
评论(0)
推荐(0)
摘要:
"Link" 我们知道在没有修改的时候有一个很简单的根号分治算法,现在考虑将其扩展至带修。 设$cnt_x$为$x$的出现次数,$pos_x$为$x$的出现位置,$dis_x$为$x$到其它数的最短距离。 记$B$为分块大小,$S=\{x|cnt_x B\}$。 这里先给出整体的大致思路: 保证任意 阅读全文
posted @ 2020-02-15 14:58
Shiina_Mashiro
阅读(288)
评论(0)
推荐(0)
摘要:
"Link" 首先可以很自然地想到把虚树建出来然后在上面搞。 我们做两遍dp,把每个点的$r_i$更新成从这个点出来能覆盖的最远距离和从其他点出来经过这个点后能够覆盖的最远距离的最大值。 这样我们保证了对于一条边$(u,v)$($u$是$v$的父亲),一定存在一个点$w$使得$v$比$u$更新$w$ 阅读全文
posted @ 2020-02-15 08:36
Shiina_Mashiro
阅读(232)
评论(0)
推荐(0)

浙公网安备 33010602011771号