#728. 奇怪的机器

奇怪的机器

题目描述

nn 台按顺时针排列的机器,n20n\le 20。每台机器的类型为 A 或 B。机器按顺时针编号为 1n1\dots n,第 ii 台机器的类型记作 sis_i。机器对当前持有的整数 xx 做如下更新:

  • 类型 A:将 xx11,即 x:=x1x:=x-1
  • 类型 B:将 xx 置为其二分之一向下取整,即 x:=x/2x:=\lfloor x/2\rfloor

你有 qq 个查询,每个查询给出一个整数 aa。对于单个查询,从机器 11 出发,初始持有整数 aa。每秒钟按顺序执行以下两步:

  1. 当前机器根据其类型更新 aa
  2. 顺时针移动到下一个机器(若当前在第 ii 台,1in11\le i\le n-1 则移动到 i+1i+1,若在第 nn 台则移动到 11)。

当且仅当 aa 变为 00 时停止。对于每个查询,求 aa 变为 00 所需的秒数。

注意:不同查询之间互不影响(每次从初始状态开始独立模拟)。

输入格式

输入包含若干测试用例:

  • 11 行:整数 tt,表示测试用例个数。(1t1041\le t\le 10^4

  • 随后对每个测试用例,包含 33 行:

    1. 11 行:两个整数 nnqq1n201\le n\le 201q1041\le q\le 10^4) —— 机器数量与查询数量。
    2. 22 行:长度为 nn 的字符串 ss,每个字符为 AB,表示各台机器的类型(s=n|s|=n,第 ii 个字符为 sis_i)。
    3. 33 行:qq 个整数 a1,a2,,aqa_1,a_2,\dots,a_q,表示每个查询的初始整数(1ai1091\le a_i\le 10^9)。
  • 所有测试用例中 qq 的总和不超过 10410^4。对 nn 的总和没有特殊限制。

输出格式

对每个测试用例输出 一行,该行包含 qq 个整数(用空格分隔),分别为对应 qq 个查询的答案:每个初始值 aia_i 变为 00 所需的秒数。

样例输入

3
2 2
BA
3 4
1 1
B
20
6 4
BAABBA
2 8 32 95

样例输出

2
3
5
2
5
8
11

说明

样例解释

  • 样例 11 中,第一个查询 a=3a=3(机器序列 B,A):

    • 在机器 11B)上:a3/2=1a\leftarrow\lfloor 3/2\rfloor=1
    • 移到机器 22A):a11=0a\leftarrow 1-1=0。共 22 秒。
  • 样例 11 中,第二个查询 a=4a=4

    • 机器 11B):424\to2
    • 机器 22A):212\to1
    • 机器 11B):101\to0,共 33 秒。
  • 样例 2(只有一台 B 机,a=20a=20):每秒 aa/2a\to\lfloor a/2\rfloor,需要 55 次直到 00