AT_arc148_b.[ARC148B] dp
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
对于仅由 d 和 p 组成、长度为 L 的字符串 T,定义 T 经过 180 度旋转后的字符串为 f(T)。更严格地说,f(T) 满足以下条件:
- f(T) 是仅由
d和p组成、长度为 L 的字符串。 - 对于所有满足 1≤i≤L 的整数 i,f(T) 的第 i 个字符与 T 的第 L+1−i 个字符不同。
例如,当 $T = $ ddddd 时,$f(T) = $ ppppp;当 $T = $ dpdppp 时,$f(T) = $ dddpdp。
给定一个仅由 d 和 p 组成、长度为 N 的字符串 S。
你可以进行 0 次或 1 次如下操作:
- 选择一组整数 (L,R),满足 1≤L≤R≤N,取 S 的第 L 个字符到第 R 个字符组成的子串 T。然后,将 S 的第 L 个字符到第 R 个字符替换为 f(T)。
例如,$S = $ dpdpp,(L,R)=(2,4) 时,$T = $ pdp,$f(T) = $ dpd,所以操作后 S 变为 ddpdp。
请输出所有可能得到的 S 中,字典序最小的字符串。
字典序的定义如下:对于字符串 S=S1S2…S∣S∣ 和 T=T1T2…T∣T∣,S 字典序小于 T,当且仅当满足以下两条之一。这里 ∣S∣,∣T∣ 分别表示 S,T 的长度。
- ∣S∣<∣T∣ 且 S1S2…S∣S∣=T1T2…T∣S∣。
- 存在整数 1≤i≤min{∣S∣,∣T∣},使得以下两点都成立:
- S1S2…Si−1=T1T2…Ti−1
- Si 是按字母顺序小于 Ti 的字符。
输入格式
输入按以下格式从标准输入读入。
N S
输出格式
请输出答案。
输入输出样例
输入#1
6 dpdppd
输出#1
dddpdd
输入#2
3 ddd
输出#2
ddd
输入#3
11 ddpdpdppddp
输出#3
ddddpdpdddp
说明/提示
限制条件
- 1≤N≤5000
- S 是仅由
d和p组成、长度为 N 的字符串 - N 是整数
样例解释 1
选择 (L,R)=(2,5)。$T = $ pdpp,$f(T) = $ ddpd,所以操作后的 S 为 dddpdd。在所有可能得到的字符串中,dddpdd 字典序最小,因此输出它。
样例解释 2
有时不进行操作是最优的。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?