#P15738. [JAG 2024 Summer Camp #2] Just Believe in Binary Search

[JAG 2024 Summer Camp #2] Just Believe in Binary Search

说明

正在遗迹中探索宝藏的 Alice 来到了一条走廊,走廊上并排着 NN 个房间的入口。经过调查,她发现房间被唯一地编号为 11NN,但每个房间的具体编号直到进入后才能知晓。她得知宝藏藏在编号为 KK 的房间中。

考虑到剩余的体力,Alice 很难检查所有房间。然而,Alice 有一个应对此困境的秘密策略:二分查找。Alice 之前曾成功地将二分查找应用于各种挑战。她决定用尽最后的力量,使用二分查找来寻找房间 KK

具体来说,她遵循以下步骤:

  • 初始化变量 llrr,令 l=0l = 0r=N+1r = N + 1
  • 重复执行步骤 1 到 3:
    1. 如果 l+1=rl + 1 = r,则停止操作,因为她未能找到房间 KK
    2. m=l+r2m = \left\lfloor \frac{l + r}{2} \right\rfloor。进入从左数第 mm 个房间,检查其编号,记该编号为 xx
    3. 如果 x=Kx = K,则停止操作,因为她找到了房间 KK。如果 x<Kx < K,则将 ll 更新为 mm。如果 x>Kx > K,则将 rr 更新为 mm

房间与编号之间共有 N!N! 种可能的映射关系。你需要计算,在这些映射中,有多少种映射能使得 Alice 通过上述过程成功找到房间 KK,答案对 998,244,353998,244,353 取模。

给定 TT 个测试用例,计算每个用例的答案。

输入格式

输入以如下格式给出:

$$\begin{aligned} &T \\ &\text{case}_1 \\ &\text{case}_2 \\ &\vdots \\ &\text{case}_T \end{aligned}$$

其中,casei\text{case}_i 表示第 ii 个测试用例。

每个测试用例以如下格式给出:

N KN \ K
  • 1T100,0001 \leq T \leq 100,000
  • 3N1063 \leq N \leq 10^6
  • 1KN1 \leq K \leq N
  • 所有输入值均为整数。

输出格式

输出 TT 行。在第 ii 行输出第 ii 个测试用例的答案。

5
3 1
4 2
5 4
10 5
1000000 314159
4
12
66
1192320
853363991

提示

翻译由 DeepSeek V3.2 完成