luogu#P9348. 小园香径独徘徊

    ID: 13322 远端评测题 1000ms 512MiB 尝试: 1 已通过: 1 难度: 7 上传者: 标签>字符串贪心洛谷原创后缀自动机,SAMO2优化后缀数组,SA洛谷月赛

小园香径独徘徊

题目背景

徘徊在一条幽深的小径上,拾起记忆的碎片,将它们放入两个长长的口袋中。

将它们收集完倒出来后,会拼成什么样的故事呢?

题目描述

有两个字符串 S,TS,T,一开始给定 SSTT 为空串。每次你可以执行以下三种操作,直到 SS 变为空串:

  1. 删去 SS 的第一个字符,并将这个字符插入 TT 的开头;
  2. 删去 SS 的第一个字符,并将这个字符插入 TT 的末尾;
  3. 删去 SS 的最后一个字符,并将这个字符插入 TT 的开头。

a3 想知道,SS 变为空串后,可以构成的字典序最小的 TT

输入格式

本题有多组测试数据。

第一行一个整数 QQ,表示测试数据组数。

对于每组测试数据,一行一个字符串 SS

输出格式

对于每组测试数据,一行一个字符串,表示可以构成的字典序最小的 TT

2
ababdca
dcbcadb
aaabbdc
abbcdcd

提示

【样例 1 解释】

  • 对于 ababdca\texttt{ababdca},依次进行第 1,2,1,2,2,2,11,2,1,2,2,2,1 种操作,即可得到 aaabbdc\texttt{aaabbdc}
  • 对于 dcbcadb\texttt{dcbcadb},依次进行第 1,1,1,2,3,1,21,1,1,2,3,1,2 种操作,即可得到 abbcdcd\texttt{abbcdcd}

【数据规模与约定】

本题采用捆绑测试。

  • Subtask 1(5 points):SS 由至多两种字符构成。
  • Subtask 2(10 points):S12\sum |S|\le 12
  • Subtask 3(15 points):S100\sum |S|\le 100
  • Subtask 4(25 points):S3×103\sum |S|\le 3\times 10^3
  • Subtask 5(20 points):S2×105\sum |S|\le 2\times 10^5
  • Subtask 6(25 points):无特殊限制。

对于 100%100\% 的数据,1Q3×1051\le Q\le 3\times 10^51S1061\le |S|\le 10^61S2×1061\le \sum |S|\le 2\times 10^6SS 仅由小写字母构成。