HDU 6194 string string string
一眼以为KMP能解,上去就是一WA…… 但是我还不知道KMP的错误点……可惜看不了提交的代码了…… 这道题因为我在比赛的时候被一道煞笔树形DP卡到了,因为图没清空,所以没什么时间去看,虽然最后还是有一个小时给我,但我还是没有做出来。 比赛的时候天海的解法用到了单调栈,但我看了题解还有另一个非常巧妙的做法。 题意: 给你一个字符串,问你刚好出现 k 次的子串数量。 思路: 看了大佬的题解,只给了一个方程。枚举区间为 k – 1 的 height 数组,也就是 k 的 sa,贡献为 $ max(0, lcp( i , i + k – 1 ) – max(height[ i ], height[ i + k ]) $ 一开始听蒙蔽的,略加思考就察觉到了方程的正确性,对于每个区间的 LCP ,如果跟区间外的后缀一旦有重复的,那么这个公共部分就不能算及在内。因为这个部分就不是刚好出现…