CF2156B.Strange Machine

入门

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有 nn 台机器按照环状排列,其中 nn 最多为 2020。每台机器都是类型 A 或类型 B。机器按顺时针编号为 11 至 nn,第 ii 台机器的类型用 sis_i 表示。每台机器会对整数 xx 按其类型进行以下操作:

  • 类型 A:将 xx 减 11。形式为 x:=x−1x := x - 1。
  • 类型 B:将 xx 替换为 ⌊x2⌋\left\lfloor\frac{x}{2}\right\rfloor,即 x:=⌊x2⌋x := \left\lfloor\frac{x}{2}\right\rfloor,这里 ⌊y⌋\lfloor y\rfloor 表示 yy 的向下取整,也就是不大于 yy 的最大整数。

你会得到 qq 个询问,每个询问提供一个整数 aa。对每个询问,从第 11 台机器开始,手里持有整数 aa。每一秒,按如下两步顺序执行:

  1. 当前机器根据自身类型操作 aa。
  2. 顺时针移动到下一台机器:
    • 如果当前在机器 ii(1≤i≤n−11 \le i \le n - 1),则移动到机器 i+1i+1。
    • 如果当前在机器 nn,则回到机器 11。

该过程持续到 aa 变为 00。对于每个询问,计算 aa 变为 00 需要的秒数。

注意所有询问互不影响。

输入格式

每个测试用例包含多组数据。第一行包含测试用例数 tt(1≤t≤1041 \le t \le 10^4)。每组数据描述如下:

每组数据的第一行包含两个整数 nn 和 qq(1≤n≤201\le n\le 20,1≤q≤1041\le q\le 10^4),分别表示机器台数和询问数。

第二行是长度为 nn 的字符串 ss(∣s∣=n|s| = n 且 si=As_i =\mathtt{A} 或 B\mathtt{B}),表示每台机器的类型。

第三行包含 qq 个整数 a1,a2,…,aqa_1, a_2, \ldots, a_q(1≤ai≤1091\le a_i\le 10^9),分别表示每个询问的起始整数。

特别地,对所有测试用例,qq 的总和不超过 10410^4。

输出格式

对于每组数据,输出 qq 个整数,分别对应每个询问的答案。

输入输出样例

  • 输入#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

说明/提示

在第一个测试用例中,询问情况如下:

  • 询问 11:a=3a = 3

    1. 从机器 11 开始。机器 11 将 aa 变为 ⌊32⌋=1\left\lfloor\frac{3}{2}\right\rfloor = 1。
    2. 移动到机器 22。机器 22 将 aa 减 11,变为 1−1=01 - 1 = 0。

    因此 aa 变为 00 共用 22 秒。

  • 询问 22:a=4a = 4

    1. 从机器 11 开始。机器 11 将 aa 变为 ⌊42⌋=2\left\lfloor\frac{4}{2}\right\rfloor = 2。
    2. 移动到机器 22。机器 22 将 aa 减 11,变为 2−1=12 - 1 = 1。
    3. 回到机器 11。机器 11 将 aa 变为 ⌊12⌋=0\left\lfloor\frac{1}{2}\right\rfloor = 0。

    因此 aa 变为 00 共用 33 秒。

在第二个测试用例中,唯一的询问起始 a=20a = 20:

  1. 从机器 11 开始。机器 11 将 aa 变为 ⌊202⌋=10\left\lfloor\frac{20}{2}\right\rfloor = 10。
  2. 留在机器 11。机器 11 将 aa 变为 ⌊102⌋=5\left\lfloor\frac{10}{2}\right\rfloor = 5。
  3. 留在机器 11。机器 11 将 aa 变为 ⌊52⌋=2\left\lfloor\frac{5}{2}\right\rfloor = 2。
  4. 留在机器 11。机器 11 将 aa 变为 ⌊22⌋=1\left\lfloor\frac{2}{2}\right\rfloor = 1。
  5. 留在机器 11。机器 11 将 aa 变为 ⌊12⌋=0\left\lfloor\frac{1}{2}\right\rfloor = 0。

因此 aa 变为 00 共用 55 秒。

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页