摘要:
"Link" 考虑二分答案$lim$。 那么我们现在要求的是是否存在$i\in[a,b],s.t. lcp(suf_i,suf_c)\ge lim$。 从$rand_c$开始往两端扩展到$[l,r]$,满足$\forall i\in(l,r],h_i\ge mid$。 那么我们要求的就是在$sa_l 阅读全文
摘要:
题意简述: 在一个圆内随机放$n$个点,求这$n$个点在同一半圆内的概率。 解法: 首先进行一个转换,题目等价于在圆弧上随机$n$个点,这$n$个点在一个半圆弧上的概率。 对于一种选择$n$个点的方案,我们先强制其中一个点为起点,并且认为这个半圆弧是从这个点开始的沿顺时针走的半圆弧。 我们称这样的方 阅读全文
摘要:
"Link" 先考虑离线做法:动态构建SAM,同时维护$f_l$表示以当前串末尾为右端点,左端点为$l$的答案。 插入一个字符会改变它在parent树上祖先的$endpos$集合,考虑往$endpos$集合中插入一个元素的贡献。 对于$x\subseteq endpos$,左端点为$x i+1$的答 阅读全文
摘要:
"Link" 首先我们可以发现答案的两个串$t_1,t_2$一定是这样的形式:$t_1$是一个$pre/suf$,$t_2$紧挨着$t_1$。 不妨认为$t_1$是$pre$,对于$suf$只需要把原串翻转之后再做一遍即可。 那么我们可以对于所有的$s_{1,i}$,计算出最长的满足$s_{i+1, 阅读全文
摘要:
"Link" 先求SA,并求出本质不同的子串数目。 然后二分答案$mid$,并求出排名为$mid$的子串$t$。 检验从后往前贪心,尽可能地让最后一个$suf$更长。 阅读全文
摘要:
"Link" 我们知道在没有修改的时候有一个很简单的根号分治算法,现在考虑将其扩展至带修。 设$cnt_x$为$x$的出现次数,$pos_x$为$x$的出现位置,$dis_x$为$x$到其它数的最短距离。 记$B$为分块大小,$S=\{x|cnt_x B\}$。 这里先给出整体的大致思路: 保证任意 阅读全文
摘要:
"Link" 首先可以很自然地想到把虚树建出来然后在上面搞。 我们做两遍dp,把每个点的$r_i$更新成从这个点出来能覆盖的最远距离和从其他点出来经过这个点后能够覆盖的最远距离的最大值。 这样我们保证了对于一条边$(u,v)$($u$是$v$的父亲),一定存在一个点$w$使得$v$比$u$更新$w$ 阅读全文
摘要:
"Link" 先点分治,保存下以当前重心为一端且不经过其它中重心的路径,并按$\overline w k$排序。 然后二分答案,用双指针扫每个重心的路径,并维护下$\overline w k$最小的路径。 注意不能选来自同一子树的两条路径,因此我们再维护一个与$\overline w k$最小的路径 阅读全文
摘要:
"Link" 我们知道如果没有边权大小的限制那么一定先手必胜,因此我们不妨猜测在有了边权大小的限制之后仍然是先手必胜。 不失一般性,假设Alice选择 并将棋子放在某个左侧点。 我们任取一组最大匹配中的两条边$(u,v),(p,q)$,那么我们希望构造出这样的情况: 若Alice将棋子从$v$移至$ 阅读全文
摘要:
"Link" 通过简单的推理可以知道不到最后一刻猜牌肯定是不优的。 通过简单地推理可以知道 设$f_{n,m}$表示先手有$n$张牌,后手有$m$张牌的先手的胜率。 此时先手有猜对方的牌(猜测)和猜自己的牌(欺骗)两种策略。 后手则有相信和不信两种应对方案。 如果先手选择欺骗而后手选择你这不信那么先 阅读全文