摘要:
因为不会SAM,考虑SA。将所有串连起来并加分隔符,每次考虑计算以某个位置开始的子串有多少个合法。 对此首先二分答案,找到名次数组上的一个区间,那么只需要统计有多少个所给串在该区间内出现就可以了。这是一个主席树的经典问题,对每个数找到上次出现位置扔进去即可。这样就做到O(nlog2n)了。 可以进一 阅读全文
posted @ 2018-09-23 19:05
Gloid
阅读(264)
评论(0)
推荐(0)
摘要:
直接维护选k个子段时的最优解似乎也可以做,然而复杂度是O(nk2logn),显然跑不过。 考虑一种费用流做法。序列里每个点拆成入点和出点,源连入汇连出,入点和出点间连流量1费用ai的边,相邻点出点向入点连流量1费用0的边,整体限流k。 直接跑当然还不如暴力。观察一下这个做法是在干啥:每次选择费用最大 阅读全文
posted @ 2018-09-23 00:30
Gloid
阅读(419)
评论(0)
推荐(0)

浙公网安备 33010602011771号