摘要: 1.线段不覆盖问题 给出 \(n\) 个线段,选择尽量多的线段使得选择的线段相互之间无重叠,问最多可以选多少条线段。 解析 考虑贪心,将线段按右端点从小到大排序,如果这条线段的左端点大于上一条线段的右端点那就选择这条线段。 为什么这么贪是对的呢,因为将右端点排序可以使右边剩余的空间尽量大,那么剩余的 阅读全文
posted @ 2024-08-29 15:13 sad_lin 阅读(18) 评论(0) 推荐(0) 编辑
摘要: 定义 Manacher 马拉车,一种为了求字符串中最长的回文字串的算法。 暴力 这个算法是从暴力的方法转化过来的,暴力肯定是枚举字符串每个字符作为中心,然后向外扩展,这样的复杂度为 \(O(n^2)\)。 特殊处理 而 Manacher 则是按照回文对称的性质的进行优化的,首先回文串有奇数串 \(a 阅读全文
posted @ 2024-08-29 09:51 sad_lin 阅读(50) 评论(1) 推荐(2) 编辑