CF2075E XOR Matrix

题目描述

对于两个数组 $a = [a_1, a_2, \dots, a_n]$ 和 $b = [b_1, b_2, \dots, b_m]$,我们定义大小为 $n \times m$ 的异或矩阵 $X$,其中对于每对 $(i,j)$($1 \le i \le n$;$1 \le j \le m$),有 $X_{i,j} = a_i \oplus b_j$。符号 $\oplus$ 表示按位异或运算。 给定四个整数 $n, m, A, B$。请计算满足以下条件的数组对 $(a, b)$ 的数量: - 数组 $a$ 包含 $n$ 个整数,每个整数的取值范围是 $0$ 到 $A$; - 数组 $b$ 包含 $m$ 个整数,每个整数的取值范围是 $0$ 到 $B$; - 由这些数组生成的异或矩阵中,不同值的数量不超过两个。

输入格式

第一行包含一个整数 $t$($1 \le t \le 10^4$)——测试用例的数量。 每个测试用例由一行组成,包含四个整数 $n, m, A, B$($2 \le n, m, A, B \le 2^{29} - 1$)。

输出格式

对于每个测试用例,输出一个整数——满足所有三个条件的数组对 $(a, b)$ 的数量。由于该数值可能非常大,请输出其对 $998244353$ 取模的结果。

说明/提示

翻译由 DeepSeek R1 完成