CF240F.TorCoder
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有一个叫做 Leo 的男孩从不缺席任何 TorCoder 比赛。在上一场编号为 100666 的 TorCoder 比赛中,Leo 遇到了如下问题。他得到了一个由 n 个小写英文字母组成的字符串 s,以及 m 个询问。每个询问由一对整数 li,ri (1≤li≤ri≤n) 描述。
我们将字符串中的字母从左到右编号为 1 到 n,即 s=s1s2…sn。
对于每个询问,他必须交换字符串 s 中下标从 li 到 ri(包括两端)的字母,使得子串 (li,ri) 变成回文。如果有多种字母排列能达到这个目的,你应选择使子串 (li,ri) 字典序最小的方案。如果不存在这样的排列,则忽略本次询问(即字符串 s 保持不变)。
众所周知,在 TorCoder 比赛中,输入行数和数组大小从不会超过 60,因此 Leo 轻松解决了这个问题。你的任务是在数据规模更大的情况下完成这个问题。给定字符串 s 和 m 个操作,请输出全部 m 次操作后所得的字符串。
输入格式
从文件 input.txt 中读入数据。
第一行包含两个整数 n 和 m (1≤n,m≤105)——表示字符串长度和询问个数。
第二行包含长度为 n 的小写英文字母字符串 s。
接下来的 m 行中,每行包含两个整数 li,ri(1≤li≤ri≤n),表示一个询问。
输出格式
输出到文件 output.txt 中。
一行输出经过 m 次操作之后得到的字符串。按输入顺序处理所有操作。
输入输出样例
输入#1
7 2 aabcbaa 1 3 5 7
输出#1
abacaba
输入#2
3 2 abc 1 2 2 3
输出#2
abc
说明/提示
一个长度为 n 的字符串 s=s1s2…sn 的子串 (li,ri) (1≤li≤ri≤n) 是序列 slisli+1…sri。
如果一个字符串从左到右和从右到左读都相同,则称其为回文字符串。
长度为 p 的字符串 x1x2…xp 的字典序小于长度为 q 的字符串 y1y2…yq,当且仅当:
要么 p<q 且 x1=y1,x2=y2,…,xp=yp,
要么存在某个数 r (r<p,r<q),使得 x1=y1,x2=y2,…,xr=yr 且 xr+1<yr+1。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?