01 2019 档案
摘要:"题目链接" 发现双倍回文串一定是中心是 的回文串。 所以考虑枚举 点。发现以$i$为中心的双倍回文的左半部分是个回文串,其中心一定位于$i \frac{pal[i] 1}2$到$i 1$之间,而且越远越好。所以我们用一个$set$来存一下目前为止回文右端点$\geq i$的点,然后在$set$中找
阅读全文
摘要:"题目链接" 最近做题目好像有点东一榔头西一棒。好吧其实订正模拟题的时候需要用到什么感觉不太熟的就写一下吧。 显然直接贪心,比较两个点后面的串的字典序,小就选谁就可以了。 可以把两个串接起来,加一个$inf$分隔。然后用$SA$的$rank$数组就可以比较大小了。 也可以用哈希+二分比较。 cpp
阅读全文
摘要:"题目链接" 显然按照点的贡献来考虑,答案就是每个点在点分树的期望深度之和。 深度一般可以转化为它是几个点的子树。 考虑$y$在$x$的点分树的子树中。那么需要保证在原树$x$到$y$的路径上的点里面,必须是$x$最先被随机到。因此这种概率为$\frac 1{dis(x,y)}$。 所以统计一下原树
阅读全文
摘要:"题目链接" 首先这种题一看就是dp。 设$dp[i][j]$表示$A$序列中到$i$位之前,取了$j$段,在$B$中的最长的长度。 转移也比较简单 $$ dp[i][j] \to dp[i+1][j] \quad \text{不选} \\ dp[i][j] \to dp[i+k][j+1] \qu
阅读全文