P15738 [JAG 2024 Summer Camp #2] Just Believe in Binary Search
题目描述
正在遗迹中探索宝藏的 Alice 来到了一条走廊,走廊上并排着 $N$ 个房间的入口。经过调查,她发现房间被唯一地编号为 $1$ 到 $N$,但每个房间的具体编号直到进入后才能知晓。她得知宝藏藏在编号为 $K$ 的房间中。
考虑到剩余的体力,Alice 很难检查所有房间。然而,Alice 有一个应对此困境的秘密策略:**二分查找**。Alice 之前曾成功地将二分查找应用于各种挑战。她决定用尽最后的力量,使用二分查找来寻找房间 $K$。
具体来说,她遵循以下步骤:
- 初始化变量 $l$ 和 $r$,令 $l = 0$,$r = N + 1$。
- 重复执行步骤 1 到 3:
1. 如果 $l + 1 = r$,则停止操作,因为她未能找到房间 $K$。
2. 令 $m = \left\lfloor \frac{l + r}{2} \right\rfloor$。进入从左数第 $m$ 个房间,检查其编号,记该编号为 $x$。
3. 如果 $x = K$,则停止操作,因为她找到了房间 $K$。如果 $x < K$,则将 $l$ 更新为 $m$。如果 $x > K$,则将 $r$ 更新为 $m$。
房间与编号之间共有 $N!$ 种可能的映射关系。你需要计算,在这些映射中,有多少种映射能使得 Alice 通过上述过程成功找到房间 $K$,答案对 $998,244,353$ 取模。
给定 $T$ 个测试用例,计算每个用例的答案。
输入格式
输入以如下格式给出:
$$
\begin{aligned}
&T \\
&\text{case}_1 \\
&\text{case}_2 \\
&\vdots \\
&\text{case}_T
\end{aligned}
$$
其中,$\text{case}_i$ 表示第 $i$ 个测试用例。
每个测试用例以如下格式给出:
$$
N \ K
$$
- $1 \leq T \leq 100,000$
- $3 \leq N \leq 10^6$
- $1 \leq K \leq N$
- 所有输入值均为整数。
输出格式
输出 $T$ 行。在第 $i$ 行输出第 $i$ 个测试用例的答案。
说明/提示
翻译由 DeepSeek V3.2 完成