欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1986C.Update Queries
Update Queries
题目描述
让我们考虑如下的简单问题。给定一个长度为 的字符串 ,由小写拉丁字母组成,以及一个长度为 的下标数组 (),和一个长度为 的字符串 ,由小写拉丁字母组成。然后,依次进行 次更新操作,即在第 次操作时,将 赋值为 。注意,你需要按照顺序依次执行所有 次操作。
当然,如果你改变数组 中下标的顺序和/或字符串 中字母的顺序,可能会得到不同的结果。请你找出在可以任意重排数组 和字符串 的情况下,经过 次更新操作后能够得到的字典序最小的字符串 。
如果满足以下任一条件,则字符串 的字典序小于字符串 :
- 是 的前缀,且 ;
- 在 和 第一个不同的位置, 中的字母在字母表中比 中对应的字母更靠前。
输入格式
每组测试数据包含多组输入。第一行包含一个整数 (),表示测试数据组数。接下来是每组测试数据的描述。
每组测试数据的第一行包含两个整数 和 (),分别表示字符串 的长度和更新操作的次数。
第二行包含一个长度为 的字符串 ,由小写拉丁字母组成。
第三行包含 个整数 (),表示下标数组 。
第四行包含一个长度为 的字符串 ,由小写拉丁字母组成。
保证所有测试数据中 的总和不超过 ,所有 的总和也不超过 。
输出格式
对于每组测试数据,输出经过任意重排 和 后,能够得到的字典序最小的字符串 。
说明/提示
在第一组测试数据中,你可以保持数组 和字符串 不变,直接按顺序执行所有操作。
在第二组测试数据中,你可以将数组 , "zczw"。则字符串 的变化过程为:$meow \rightarrow zeow \rightarrow ceow \rightarrow ceoz \rightarrow cwoz$。
在第三组测试数据中,你可以保持数组 不变,将 "admn"。则字符串 的变化过程为:$abacaba \rightarrow abacaba \rightarrow abdcaba \rightarrow abdcmba \rightarrow abdcmbn$。
由 ChatGPT 4.1 翻译
样例
4
1 2
a
1 1
cb
4 4
meow
1 2 1 4
zcwz
7 4
abacaba
1 3 5 7
damn
7 10
traktor
7 6 5 4 3 2 1 6 4 2
codeforces
b
cwoz
abdcmbn
ccdeefo
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |