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 翻译