欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF2156B.Strange Machine
Strange Machine
题目描述
有 台机器按照环状排列,其中 最多为 。每台机器都是类型 A 或类型 B。机器按顺时针编号为 至 ,第 台机器的类型用 表示。每台机器会对整数 按其类型进行以下操作:
- 类型 A:将 减 。形式为 。
- 类型 B:将 替换为 ,即 ,这里 表示 的向下取整,也就是不大于 的最大整数。
你会得到 个询问,每个询问提供一个整数 。对每个询问,从第 台机器开始,手里持有整数 。每一秒,按如下两步顺序执行:
- 当前机器根据自身类型操作 。
- 顺时针移动到下一台机器:
- 如果当前在机器 (),则移动到机器 。
- 如果当前在机器 ,则回到机器 。
该过程持续到 变为 。对于每个询问,计算 变为 需要的秒数。
注意所有询问互不影响。
输入格式
每个测试用例包含多组数据。第一行包含测试用例数 ()。每组数据描述如下:
每组数据的第一行包含两个整数 和 (,),分别表示机器台数和询问数。
第二行是长度为 的字符串 ( 且 或 ),表示每台机器的类型。
第三行包含 个整数 (),分别表示每个询问的起始整数。
特别地,对所有测试用例, 的总和不超过 。
输出格式
对于每组数据,输出 个整数,分别对应每个询问的答案。
说明/提示
在第一个测试用例中,询问情况如下:
-
询问 :
- 从机器 开始。机器 将 变为 。
- 移动到机器 。机器 将 减 ,变为 。
因此 变为 共用 秒。
-
询问 :
- 从机器 开始。机器 将 变为 。
- 移动到机器 。机器 将 减 ,变为 。
- 回到机器 。机器 将 变为 。
因此 变为 共用 秒。
在第二个测试用例中,唯一的询问起始 :
- 从机器 开始。机器 将 变为 。
- 留在机器 。机器 将 变为 。
- 留在机器 。机器 将 变为 。
- 留在机器 。机器 将 变为 。
- 留在机器 。机器 将 变为 。
因此 变为 共用 秒。
由 ChatGPT 5 翻译
样例
3
2 2
BA
3 4
1 1
B
20
6 4
BAABBA
2 8 32 95
2
3
5
2
5
8
11
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |