免费开商城网站吗,保险网站哪家好,国内酒店网站建设,wordpress提交友情链接久违的字符串计数题。
显然只用考虑 [ i : j ] [i:j] [i:j]这一段拼成的串。不难得出结论#xff1a;设 n x t i nxt_i nxti表示 i i i之后第一个本质不同的字符的位置#xff0c;那么 n x t i ≤ j nxt_i\le j nxti≤j#xff0c;并且 s i ? s n x t i s_i?s_{nxt_i…久违的字符串计数题。
显然只用考虑 [ i : j ] [i:j] [i:j]这一段拼成的串。不难得出结论设 n x t i nxt_i nxti表示 i i i之后第一个本质不同的字符的位置那么 n x t i ≤ j nxt_i\le j nxti≤j并且 s i ? s n x t i s_i?s_{nxt_i} si?snxti或者 n x t i j nxt_ij nxtij。
注意到限制对于左端点 l l l是固定的。对于左端点保留最紧的也就是 r r r最大的限制。这样设 f i , j f_{i,j} fi,j表示前缀 i i i且 s i s_i si等于 j j j的答案发现贡献是一段区间可以差分搞一下。可能稍微有一点麻烦。
注意不要算重。
复杂度 O ( 26 n ) O(26n) O(26n)。