CF2234D.XOR, Expression and Two Binary Numbers

传统题 时间 2000 ms 内存 256 MiB 8 尝试 3 已通过 1 标签

XOR, Expression and Two Binary Numbers

You are given an integer kk. There is a sequence of nn-bit binary numbers a1,a2,,a2k+1a_1, a_2, \ldots, a_{2^k + 1}. The numbers a1a_1 and a2k+1a_{2^k + 1} are given to you, and the others are unknown. Then the unknown numbers are filled in as follows over kk steps:

  • Suppose that before the ii-th step, the numbers with indices p1<p2<<pmp_1 \lt p_2 \lt \ldots \lt p_m have already been filled. (Before the first step, these are the numbers with indices 1,2k+11, 2^{k} + 1).
  • Then for each jj from 11 to m1m - 1, the assignment $a_{\frac{p_j + p_{j + 1}}{2}} := a_{p_j} \oplus a_{p_{j + 1}}$^{\text{∗}} is performed.
  • These assignments happen simultaneously, and after that all these numbers also become filled.

It can be shown that this process always fills all numbers completely.

This is what the process looks like for k=2k = 2 and n=3n = 3, where initially a1=010,a5=110a_1 = \texttt{010}, a_5 = \texttt{110}:

  • Before the first step, the numbers with indices 1,51, 5 are filled. Therefore, this operation will perform $a_3 := a_1 \oplus a_5 = \texttt{010} \oplus \texttt{110} = \texttt{100}$.
  • Before the second step, the numbers with indices 1,3,51, 3, 5 are filled. Therefore, this operation will perform a2:=a1a3=110a_2 := a_1 \oplus a_3 = \texttt{110} and a4=a3a5=010a_4 = a_{3} \oplus a_{5} = \texttt{010}

You need to compute the following expression: $x_1 \cdot y_1 + x_2 \cdot y_2 + \ldots + x_{2^k + 1} \cdot y_{2^k + 1}$, where xix_i is the number of set bits in the ii-th number, and yiy_i is the number of zero bits in the ii-th number.

^{\text{∗}}xyx \oplus y denotes the bitwise exclusive OR of numbers xx and yy

Input

Each test contains multiple test cases. The first line contains the number of test cases tt (1t1041 \le t \le 10^4). The description of the test cases follows.

The first line of each test case contains two integers n,kn, k (1n1051 \leq n \leq 10^5, 1k301 \leq k \leq 30) — the length of the binary numbers and the number determining the number of binary numbers in the sequence.

The second line of each test case contains a binary string ss of length nn (si{0,1}s_i \in \{\texttt{0}, \texttt{1}\}) — the value of a1a_1.

The third line of each test case contains a binary string zz of length nn (zi{0,1}z_i \in \{\texttt{0}, \texttt{1}\}) — the value of a2k+1a_{2^k + 1}.

It is guaranteed that the sum of nn over all test cases does not exceed 10510^5.

Output

For each test case, output one integer — the value of the expression from the statement.

Note

In the first test case, the process was described in the statement. The resulting sequence of binary numbers is $[\texttt{010}, \texttt{110}, \texttt{100}, \texttt{010}, \texttt{110}]$. Then the expression in the statement equals $1 \cdot 2 + 2 \cdot 1 + 1 \cdot 2 + 1 \cdot 2 + 2 \cdot 1 = 10$.

In the second test case, at the first step we have $a_2 = a_1 \oplus a_3 = \texttt{0} \oplus \texttt{0} = \texttt{0}$. Therefore, the resulting sequence of numbers is [0,0,0][\texttt{0}, \texttt{0}, \texttt{0}]. For it, the value of the expression is zero.

Samples

4
3 2
010
110
1 1
0
0
2 2
01
00
7 30
1010111
0011010
10
0
3
12169074016

在线编程 IDE

建议全屏模式获得最佳体验