CF2156B.Strange Machine
入门
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有 n 台机器按照环状排列,其中 n 最多为 20。每台机器都是类型 A 或类型 B。机器按顺时针编号为 1 至 n,第 i 台机器的类型用 si 表示。每台机器会对整数 x 按其类型进行以下操作:
- 类型 A:将 x 减 1。形式为 x:=x−1。
- 类型 B:将 x 替换为 ⌊2x⌋,即 x:=⌊2x⌋,这里 ⌊y⌋ 表示 y 的向下取整,也就是不大于 y 的最大整数。
你会得到 q 个询问,每个询问提供一个整数 a。对每个询问,从第 1 台机器开始,手里持有整数 a。每一秒,按如下两步顺序执行:
- 当前机器根据自身类型操作 a。
- 顺时针移动到下一台机器:
- 如果当前在机器 i(1≤i≤n−1),则移动到机器 i+1。
- 如果当前在机器 n,则回到机器 1。
该过程持续到 a 变为 0。对于每个询问,计算 a 变为 0 需要的秒数。
注意所有询问互不影响。
输入格式
每个测试用例包含多组数据。第一行包含测试用例数 t(1≤t≤104)。每组数据描述如下:
每组数据的第一行包含两个整数 n 和 q(1≤n≤20,1≤q≤104),分别表示机器台数和询问数。
第二行是长度为 n 的字符串 s(∣s∣=n 且 si=A 或 B),表示每台机器的类型。
第三行包含 q 个整数 a1,a2,…,aq(1≤ai≤109),分别表示每个询问的起始整数。
特别地,对所有测试用例,q 的总和不超过 104。
输出格式
对于每组数据,输出 q 个整数,分别对应每个询问的答案。
输入输出样例
输入#1
3 2 2 BA 3 4 1 1 B 20 6 4 BAABBA 2 8 32 95
输出#1
2 3 5 2 5 8 11
说明/提示
在第一个测试用例中,询问情况如下:
-
询问 1:a=3
- 从机器 1 开始。机器 1 将 a 变为 ⌊23⌋=1。
- 移动到机器 2。机器 2 将 a 减 1,变为 1−1=0。
因此 a 变为 0 共用 2 秒。
-
询问 2:a=4
- 从机器 1 开始。机器 1 将 a 变为 ⌊24⌋=2。
- 移动到机器 2。机器 2 将 a 减 1,变为 2−1=1。
- 回到机器 1。机器 1 将 a 变为 ⌊21⌋=0。
因此 a 变为 0 共用 3 秒。
在第二个测试用例中,唯一的询问起始 a=20:
- 从机器 1 开始。机器 1 将 a 变为 ⌊220⌋=10。
- 留在机器 1。机器 1 将 a 变为 ⌊210⌋=5。
- 留在机器 1。机器 1 将 a 变为 ⌊25⌋=2。
- 留在机器 1。机器 1 将 a 变为 ⌊22⌋=1。
- 留在机器 1。机器 1 将 a 变为 ⌊21⌋=0。
因此 a 变为 0 共用 5 秒。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?