AT_arc148_b.[ARC148B] dp

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

对于仅由 d 和 p 组成、长度为 LL 的字符串 TT,定义 TT 经过 180180 度旋转后的字符串为 f(T)f(T)。更严格地说,f(T)f(T) 满足以下条件:

  • f(T)f(T) 是仅由 d 和 p 组成、长度为 LL 的字符串。
  • 对于所有满足 1≤i≤L1 \leq i \leq L 的整数 ii,f(T)f(T) 的第 ii 个字符与 TT 的第 L+1−iL+1-i 个字符不同。

例如,当 $T = $ ddddd 时,$f(T) = $ ppppp;当 $T = $ dpdppp 时,$f(T) = $ dddpdp。

给定一个仅由 d 和 p 组成、长度为 NN 的字符串 SS。
你可以进行 00 次或 11 次如下操作:

  • 选择一组整数 (L,R)(L, R),满足 1≤L≤R≤N1 \leq L \leq R \leq N,取 SS 的第 LL 个字符到第 RR 个字符组成的子串 TT。然后,将 SS 的第 LL 个字符到第 RR 个字符替换为 f(T)f(T)。

例如,$S = $ dpdpp,(L,R)=(2,4)(L, R) = (2, 4) 时,$T = $ pdp,$f(T) = $ dpd,所以操作后 SS 变为 ddpdp。

请输出所有可能得到的 SS 中,字典序最小的字符串。

字典序的定义如下:对于字符串 S=S1S2…S∣S∣S = S_1S_2\ldots S_{|S|} 和 T=T1T2…T∣T∣T = T_1T_2\ldots T_{|T|},SS 字典序小于 TT,当且仅当满足以下两条之一。这里 ∣S∣,∣T∣|S|, |T| 分别表示 S,TS, T 的长度。

  1. ∣S∣<∣T∣|S| < |T| 且 S1S2…S∣S∣=T1T2…T∣S∣S_1S_2\ldots S_{|S|} = T_1T_2\ldots T_{|S|}。
  2. 存在整数 1≤i≤min⁡{∣S∣,∣T∣}1 \leq i \leq \min\lbrace |S|, |T| \rbrace,使得以下两点都成立:
    • S1S2…Si−1=T1T2…Ti−1S_1S_2\ldots S_{i-1} = T_1T_2\ldots T_{i-1}
    • SiS_i 是按字母顺序小于 TiT_i 的字符。

输入格式

输入按以下格式从标准输入读入。

NN SS

输出格式

请输出答案。

输入输出样例

  • 输入#1

    6
    dpdppd

    输出#1

    dddpdd
  • 输入#2

    3
    ddd

    输出#2

    ddd
  • 输入#3

    11
    ddpdpdppddp

    输出#3

    ddddpdpdddp

说明/提示

限制条件

  • 1≤N≤50001 \leq N \leq 5000
  • SS 是仅由 d 和 p 组成、长度为 NN 的字符串
  • NN 是整数

样例解释 1

选择 (L,R)=(2,5)(L, R) = (2, 5)。$T = $ pdpp,$f(T) = $ ddpd,所以操作后的 SS 为 dddpdd。在所有可能得到的字符串中,dddpdd 字典序最小,因此输出它。

样例解释 2

有时不进行操作是最优的。

由 ChatGPT 4.1 翻译

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

首页