1 条题解
-
0
XzyStudio (admin) LV 8 MOD RP++ tayz @ 6 个月前
(感觉这题比 B 可做)先考虑第一,二档部分分,我们考虑求出所有本质不同的字符串之间的匹配度,那么我们可以贪心的去选,即先取匹配度大的,再取匹配度小的。时间复杂度
, 为本质不同字符串数量。期望得分 。再考虑回文串,对于两个回文串,最长公共前缀与最长公共后缀是等价的。所以我们只需要考虑前缀即可。那么我们可以把它插入到 Trie 树上,对于 Trie 树上任意一个前缀
它能产生的贡献是 再乘上它子树内字符串的数量除以二(下取整)。但是这样它会和它父亲的贡献重复计算,所以只加上 即可。结合前面的 subtask 期望得分 。考虑怎么把后缀转化为前缀,那么我们扩充字符集,将字符集由
扩充为 的有序对,然后把串 变为 这样就把最长公共前缀和最长公共后缀的最小值转化为这个新串的最长公共子序列,然后应用回文串的做法即可,时间复杂度 其中 为总长度 为原串的字符集大小,这里为 。期望得分 。
- 1
信息
- ID
- 1092
- 难度
- 9
- 分类
- (无)
- 标签
- (无)
- 递交数
- 1
- 已通过
- 1
- 通过率
- 100%
- 上传者