「BZOJ5451 / QuestOJ 2152」字符串 – 题解

主要思路

这题还是蛮有意思,有一些奇怪的细节。

首先,只考虑正串,我们就直接塞进 AC 自动机里做套路 DP 即可。考虑串在后半段的情况,发现其实你只要刻画好前半段后半段即可被自动刻画,所以我们做串的反串并把字符取反塞到正串的 AC 自动机里就可以让字符串出现在后半段。

Continue reading →

「USACO 2018.12 Platinum」解题报告

A – The Cow Gathering

首先,如果没有限制的话,其实从叶子结点来抽是一定有解的,可以考虑思考一颗以最后出口为根结点的外向树来理解这个逻辑关系。现在有 \(m\) 个有向边,初步思考可以把每个点都作为最后一个节点,然后来看新的图有没有环,这样是 \(\Theta(n^2)\)。

Continue reading →

雅礼集训 2018 Jan 2nd – 解题报告

A – 串

如果本身就不是回文串,那么答案就是 \(1\);如果本身是的话,考虑找一个分割点使得左右都不是,那么答案就是 \(2\);如果还是没找到,那么就是无解了,因为最后串要么就是个单纯串或者是个删完一次之后变成单纯串的东西。

Continue reading →

「USACO 2018.01 Platinum」解题报告

A – Lifeguards

先可以想到把所有的包含的区间给去掉,然后来关注如何进行 DP。我们可以考虑设置 \(dp[i][j]\) 为前 \(i\) 个区间里删掉了 \(j\) 个区间的最优答案。正常我们做「选择 \(j\) 个区间」的问题会比较简单,然而 \(k \leq 200\) 就很麻烦。

Continue reading →