agc037_e Reversing and Concatenating

agc037_e Reversing and Concatenating

https://atcoder.jp/contests/agc037/tasks/agc037_e

https://img.atcoder.jp/agc037/editorial.pdf

Snipaste_2020-02-01_18-34-01.png

Snipaste_2020-02-01_18-34-11.png

Tutorial

(a) 为第一次 (U) 中字典序最小的字符, 设 (L) 为它在 (U) 中最长的连续段长度, 那么最后串的开头就会有 (min { 2^{K - 1} L, N })(a) .

(2^{K - 1}L ge N) 时, 答案就是 (N)(a)

否则, 考虑过程中

  • 在第 (i)((i < K)) , (2^{i - 1}L)(a) 必须在串的末尾.
  • 在第 (K) 步, (2^{K - 1}L)(a) 必须在串的开头.

第一步的选择有 (O(n)) 种, 而第一步选择确定后最终的串就确定了.

复杂度 (O(n^2))

原文地址:https://www.cnblogs.com/ljzalc1022/p/13191027.html