CFCF2056F1.Xor of Median (Easy Version)

省选/NOI-

通过率:0%

AC君温馨提醒

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

题目描述

这是问题的简单版本。版本之间的区别在于,在此版本中,对 ttkkmm 的约束较低。

如果满足以下条件,则称长度为 nn 的整数序列 aa 为好序列:

  • cntx\text{cnt}_x 为序列 aaxx 的出现次数。对于所有满足 0i<j<m0 \le i < j < m 的对 (i,j)(i, j),以下情况中至少有一种必须为真:cnti=0\text{cnt}_i = 0cntj=0\text{cnt}_j = 0,或 cnticntj\text{cnt}_i \le \text{cnt}_j。换句话说,如果 iijj 都出现在序列 aa 中,则 aaii 的出现次数小于或等于 aajj 的出现次数。

给定整数 nnmm。计算所有长度为 nn、满足 0ai<m0 \le a_i < m 的好序列 aa 的中位数的按位异或值。

请注意,nn 的值可能非常大,因此给出的是其二进制表示形式。

*^{\text{*}} 序列 aa 的中位数定义为序列中第 n+12\left\lfloor\frac{n + 1}{2}\right\rfloor 小的值。

输入格式

每个测试包含多个测试用例。第一行包含测试用例的数量 tt1t501 \le t \le 50)。接下来是测试用例的描述。

每个测试用例的第一行包含两个整数 kkmm1k2001 \le k \le 2001m5001 \le m \le 500)——nn 的位数和序列 aa 中元素的上限。

每个测试用例的第二行包含一个长度为 kk 的二进制字符串——nn 的二进制表示形式,没有前导零。

保证所有测试用例中 kk 的总和不超过 200200

输出格式

对于每个测试用例,输出一个整数,表示所有长度为 nn、满足 0ai<m0 \le a_i < m 的好序列 aa 的中位数的按位异或值。

样例 #1

样例输入 #1

6
2 3
10
2 3
11
5 1
11101
7 9
1101011
17 34
11001010001010010
1 500
1

样例输出 #1

3
2
0
8
32
0

输入输出样例

  • 输入#1

    6
    2 3
    10
    2 3
    11
    5 1
    11101
    7 9
    1101011
    17 34
    11001010001010010
    1 500
    1

    输出#1

    3
    2
    0
    8
    32
    0

说明/提示

在第一个示例中,n=102=2n = 10_2 = 2m=3m = 3。所有元素小于 mm 的可能序列为:[0,0][0, 0][0,1][0, 1][0,2][0, 2][1,0][1, 0][1,1][1, 1][1,2][1, 2][2,0][2, 0][2,1][2, 1][2,2][2, 2]。它们都是好序列,所以答案是:000011012=30 \oplus 0 \oplus 0 \oplus 0 \oplus 1 \oplus 1 \oplus 0 \oplus 1 \oplus 2 = 3

在第二个示例中,n=112=3n = 11_2 = 3m=3m = 3。一些好序列为 [2,2,2][2, 2, 2][1,0,1][1, 0, 1][2,0,1][2, 0, 1]。然而,序列 [2,0,0][2, 0, 0] 不是好序列,因为 cnt0=2\text{cnt}_0 = 2cnt2=1\text{cnt}_2 = 1。因此,如果我们设置 i=0i = 0j=2j = 2,则 i<ji < j 成立,但 cnticntj\text{cnt}_i \le \text{cnt}_j 不成立。

首页