#P15714. [JAG 2023 Summer Camp #2] Distance Permutation

    ID: 17779 远端评测题 5000ms 1024MiB 尝试: 0 已通过: 0 显示难度NOI/NOI+/CTS 上传者: 标签>2023生成函数快速数论变换 NTTICPC根号分治

[JAG 2023 Summer Camp #2] Distance Permutation

题目描述

你按照以下方式构造一个长度为 10510^5 的排列 P=(P1,P2,…,P105)P = (P_1, P_2, \ldots, P_{10^5})。

数轴上有 1,2,…,1051, 2, \ldots, 10^5 这些点。点 ii 和点 jj 之间的距离是 ∣i−j∣|i - j|。此外,有一个初始为空的序列 PP。从任意点开始,重复以下操作,直到 PP 的长度达到 10510^5:

  • 令 xx 为当前点对应的数字。如果 xx 不在 PP 中,则将 xx 添加到 PP 的末尾。接着,移动到距离当前点小于等于 KK 的任意一个点。

回答以下 QQ 个查询:

  • 给定整数 N,L,RN, L, R。令从 PP 中移除大于 NN 的元素后得到的序列为 P′=(P1′,P2′,…,PN′)P' = (P'_1, P'_2, \ldots, P'_N)。在所有可能的 P′P' 的排列中,回答满足 P1′P'_1 大于等于 LL 且小于等于 RR 的排列数量,结果对 998244353998244353 取模。

输入格式

$$\begin{aligned} &K \ Q \\ &query_1 \\ &\vdots \\ &query_Q \end{aligned}$$

queryiquery_i 表示第 ii 个查询。

每个查询的格式如下:

N L RN \ L \ R

输入满足以下约束:

  • 所有输入均为整数。
  • 1≤Q≤2×1051 \leq Q \leq 2 \times 10^5
  • 1≤K≤1051 \leq K \leq 10^5
  • 1≤N≤1051 \leq N \leq 10^5
  • 1≤L≤R≤N1 \leq L \leq R \leq N

输出格式

输出 QQ 行。在第 ii 行,输出第 ii 个查询的答案。

2 4
4 1 1
3 1 3
10 2 7
1 1 1
4
6
140172
1
314 6
60522 7560 25373
79445 26896 78962
33447 12441 21469
47202 17227 32455
63982 13450 41311
2156 1226 2148
925500464
455690352
567782656
893053639
942918900
458845228

提示

在样例输入 1 中,对于第一个查询,有四种可能的序列作为 P′P':

  • (1,2,3,4)(1, 2, 3, 4)
  • (1,2,4,3)(1, 2, 4, 3)
  • (1,3,2,4)(1, 3, 2, 4)
  • (1,3,4,2)(1, 3, 4, 2)

翻译由 DeepSeek V3.2 完成