欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1670B.Dorms War
Dorms War
题目描述
Hosssam 决定在 Hemose 睡觉时偷偷溜进他的房间,修改他笔记本的密码。他已经知道了密码,这个密码是一个长度为 的字符串 。他还知道有 个特殊字母:。
Hosssam 编写了一个程序,可以执行如下操作:
- 程序会读取当前长度为 的密码 。
- 然后找到所有满足 的位置 ,使得 是 个特殊字母之一。
- 然后从密码 中删除所有这些位置的字符,即使 本身是特殊字符也会被删除。如果没有可以删除的位置,程序会显示一个带有很大声音的错误信息。
例如,假设字符串 是 "abcdef",特殊字符是 'b' 和 'd'。如果运行一次程序,位置 和 会被删除,因为它们分别在特殊字符前面,所以密码变为 "bdef"。如果再运行一次程序,会删除位置 ,密码变为 "def"。如果他聪明的话,就不会再运行第三次了。
Hosssam 想知道,他最多可以在 Hemose 的笔记本上运行多少次程序,而不会因为错误信息的声音把 Hemose 吵醒。你能帮帮他吗?
输入格式
第一行包含一个整数 (),表示测试用例的数量。接下来是 组测试数据。
每组测试数据的第一行包含一个整数 (),表示密码的初始长度。
第二行包含一个由 个小写英文字母组成的字符串 ,表示初始密码。
第三行包含一个整数 (),后面跟着 个互不相同的小写字母 ,表示特殊字母。
保证所有测试用例中 的总和不超过 。
输出格式
对于每个测试用例,输出 Hosssam 最多可以运行程序的次数,每个结果占一行。
说明/提示
在第一个测试用例中,程序最多可以运行 次,过程如下:$\text{iloveslim} \to \text{ilovslim} \to \text{iloslim} \to \text{ilslim} \to \text{islim} \to \text{slim}$。
在第二个测试用例中,程序最多可以运行 次,过程如下:。
在第三个测试用例中,程序最多可以运行 次,过程如下:$\text{basiozi} \to \text{bioi} \to \text{ii} \to \text{i}$。
在第四个测试用例中,程序最多可以运行 次,过程如下:$\text{khater} \to \text{khatr} \to \text{khar} \to \text{khr} \to \text{kr} \to \text{r}$。
在第五个测试用例中,程序只能运行一次,过程如下:。
在第六个测试用例中,程序无法运行,因为密码中没有任何字符是特殊字符。
由 ChatGPT 4.1 翻译
样例
10
9
iloveslim
1 s
7
joobeel
2 o e
7
basiozi
2 s i
6
khater
1 r
7
abobeih
6 a b e h i o
5
zondl
5 a b c e f
6
shoman
2 a h
7
shetwey
2 h y
5
samez
1 m
6
mouraz
1 m
5
2
3
5
1
0
3
5
2
0
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |