AT_agc075_c [AGC075C] Minimization of Divide

题目描述

给定两个长度为 $N$ 的非负整数序列 $A = (A_1, A_2, \dots, A_N)$ 和 $B = (B_1, B_2, \dots, B_N)$。 对于 $ (1,2,\dots,N) $ 的一个排列 $P = (P_1, P_2, \dots, P_N)$,定义 $P$ 的代价为 $\sum_{i=1}^{N} \left\lfloor \dfrac{A_{P_i}}{2^{B_i}} \right\rfloor$。 请你求出能够使代价最小的排列 $P$ 的个数,答案对 $998244353$ 取模。 本题有 $T$ 组测试用例,需要你分别求解。

输入格式

输入由标准输入给出,格式如下: > $T$ > $\mathrm{case}_1$ > $\mathrm{case}_2$ > $\vdots$ > $\mathrm{case}_T$ 每组测试用例格式如下: > $N$ > $A_1\ A_2\ \dots\ A_N$ > $B_1\ B_2\ \dots\ B_N$

输出格式

输出 $T$ 行,第 $i$ 行 $(1 \leq i \leq T)$ 输出第 $i$ 个用例的答案。

说明/提示

### 样例解释 1 对于第一个用例,每个排列 $P$ 的代价如下: - $P = (1,2)$ 时,$\left\lfloor \frac{A_{1}}{2^{B_1}} \right\rfloor + \left\lfloor \frac{A_{2}}{2^{B_2}} \right\rfloor = \left\lfloor \frac{5}{1} \right\rfloor + \left\lfloor \frac{9}{2} \right\rfloor = 9$ - $P = (2,1)$ 时,$\left\lfloor \frac{9}{1} \right\rfloor + \left\lfloor \frac{5}{2} \right\rfloor = 11$ 因此最小的代价为 $9$,有一种排列 $P = (1,2)$ 可以得到。 第二个用例,$P = (1,2,3), (2,1,3)$ 可以得到最小的代价 $7$。 第三个用例,$P = (1,2,3,4), (2,1,3,4), (1,2,4,3), (2,1,4,3)$ 可以得到最小的代价 $6$。 第四个用例,所有 $ (1,2,3,4,5) $ 的排列都能取得最小代价 $5000000000$。 ### 约束条件 - $1 \leq T \leq 2 \times 10^5$ - $1 \leq N \leq 2 \times 10^5$ - $1 \leq A_i \leq 10^9$ - $0 \leq B_i \leq 30$ - 所有测试用例中 $N$ 之和不超过 $2 \times 10^5$。 由 ChatGPT 5 翻译