CF1799C.Double Lexicographically Minimum

普及+/提高

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given a string ss. You can reorder the characters to form a string tt. Define tmaxt_{\mathrm{max}} to be the lexicographical maximum of tt and tt in reverse order.

Given ss determine the lexicographically minimum value of tmaxt_{\mathrm{max}} over all reorderings tt of ss.

A string aa is lexicographically smaller than a string bb if and only if one of the following holds:

  • aa is a prefix of bb, but a≠ba \ne b;
  • in the first position where aa and bb differ, the string aa has a letter that appears earlier in the alphabet than the corresponding letter in bb.

给你一个字符串 ss。你可以对其中的字符重新排列,得到字符串 tt。定义 tmaxt_{\mathrm{max}} 为 tt 与其逆序字符串中字典序较大的那个。

给定 ss,请在 ss 的所有重排 tt 中,找出对应的 tmaxt_{\mathrm{max}} 的字典序最小值。

当且仅当满足以下条件之一时,字符串 aa 的字典序小于字符串 bb:

  • aa 是 bb 的前缀,但 a≠ba \ne b;
  • 在 aa 和 bb 首次出现不同字符的位置上,aa 中该位置的字母在字母表中早于 bb 中对应位置的字母。

输入格式

The first line contains a single integer tt (1≤t≤1051 \leq t \leq 10^5) — the number of test cases. Descriptions of test cases follow.

The first and only line of each test case contains a string ss (1≤∣s∣≤1051 \leq |s| \leq 10^5). ss consists of only lowercase English letters.

It is guaranteed that the sum of ∣s∣|s| over all test cases does not exceed 10510^5.

第一行包含一个整数 tt(1≤t≤1051 \leq t \leq 10^5),表示测试用例的数量。随后是各测试用例的描述。

每个测试用例仅有一行,包含一个字符串 ss(1≤∣s∣≤1051 \leq |s| \leq 10^5),其中 ss 仅由小写英文字母组成。

保证所有测试用例的 ∣s∣|s| 之和不超过 10510^5。

输出格式

For each test case print the lexicographically minimum value of tmaxt_{\mathrm{max}} over all reorderings tt of ss.

对于每个测试用例,输出字符串 ss 的所有重排 tt 中,tmaxt_{\mathrm{max}} 的字典序最小值。

输入输出样例

  • 输入#1

    12
    a
    aab
    abb
    abc
    aabb
    aabbb
    aaabb
    abbb
    abbbb
    abbcc
    eaga
    ffcaba

    输出#1

    a
    aba
    bab
    bca
    abba
    abbba
    ababa
    bbab
    bbabb
    bbcca
    agea
    acffba

说明/提示

For the first test case, there is only one reordering of ss, namely "a".

For the second test case, there are three reorderings of ss.

  • t=aabt = \mathtt{aab}: tmax=max⁡(aab,baa)=baat_{\mathrm{max}} = \max(\mathtt{aab}, \mathtt{baa}) = \mathtt{baa}
  • t=abat = \mathtt{aba}: tmax=max⁡(aba,aba)=abat_{\mathrm{max}} = \max(\mathtt{aba}, \mathtt{aba}) = \mathtt{aba}
  • t=baat = \mathtt{baa}: tmax=max⁡(baa,aab)=baat_{\mathrm{max}} = \max(\mathtt{baa}, \mathtt{aab}) = \mathtt{baa}

The lexicographical minimum of tmaxt_{\mathrm{max}} over all cases is "aba".

对于第一个测试用例,字符串 ss 只有一种重排,即 "a"。

对于第二个测试用例,字符串 ss 共有三种重排:

  • t=aabt = \mathtt{aab}:tmax=max⁡(aab,baa)=baat_{\mathrm{max}} = \max(\mathtt{aab}, \mathtt{baa}) = \mathtt{baa}
  • t=abat = \mathtt{aba}:tmax=max⁡(aba,aba)=abat_{\mathrm{max}} = \max(\mathtt{aba}, \mathtt{aba}) = \mathtt{aba}
  • t=baat = \mathtt{baa}:tmax=max⁡(baa,aab)=baat_{\mathrm{max}} = \max(\mathtt{baa}, \mathtt{aab}) = \mathtt{baa}

在所有情况中,tmaxt_{\mathrm{max}} 的字典序最小值为 "aba"。

输入解题思路,AI测评打分。不知道怎么写?

首页