#P14192. [ICPC 2024 Hangzhou R] Fuzzy Ranking

[ICPC 2024 Hangzhou R] Fuzzy Ranking

Description

在 Pigeland 有 nn 所大学,编号为 11nn。每年,一些排名机构会发布这些大学的排名。今年共有 kk 份排名列表,每份列表都是 11nn 的一个排列,代表大学在该列表中的排名。对于每份排名,越靠近排列前面的大学排名越好。

:::align{center}

这是 2024 ICPC World Final 的真实故事。 :::

Supigar 是一名准备申请博士项目的大四学生,他有自己评判 nn 所大学综合水平的方法。他认为,如果满足下列条件之一,则大学 xx 被认为优越于\textit{优越于}大学 yy

  • xx 在至少一份排名中比 yy 排名更靠前,或者
  • 存在某个 z (zx,zy)z\ (z \neq x, z \neq y),使得 xx 在至少一份排名中比 zz 靠前,且 zz 优越于 yy

显然,在这种定义下,可能存在某些大学对 (x,y)(x, y) 关系满足 x<yx < yxx 优越于 yy,但同时 yy 也优越于 xx。Supigar 将这类关系的大学对称为模糊对\textit{模糊对}

Supigar 有 qq 个询问,第 ii 个询问由三个整数 idiid_ilil_irir_i 表示(liril_i \le r_i)。对于每个询问,他会关注第 idiid_i 份排名列表中从第 lil_i 个位置到第 rir_i 个位置(两端都包含),对应的大学,并想知道在这些大学中,有多少对(x,y)(x<y)(x, y)\,(x<y)是模糊对。注意,模糊对的定义需综合考虑所有 kk 份排名列表的优越关系。

Input Format

有多组测试数据。输入的第一行为整数 TT1T2×1051 \leq T \leq 2 \times 10^5),表示测试数据组数。对于每组测试数据:

第一行包含三个整数 nnkkqq1n,k,q2×1051 \leq n, k, q \leq 2 \times 10^5, 1n×k2×1051 \leq n \times k \le 2 \times 10^5),分别表示大学数、排名列表数和询问数。

接下来 kk 行,每行有 nn 个互不相同的整数 ai,1,ai,2,,ai,na_{i,1}, a_{i,2}, \ldots, a_{i,n}1ai,jn1 \le a_{i,j} \le n),表示第 ii 份排名列表。

接下来 qq 行,每行有三个整数 idiid_i'lil_i'rir_i'0idi<k0 \le id_i' < k, 0li,ri<n0 \le l_i', r_i' < n),表示经过编码的排名列表编号和询问区间。

  • 真正的 idiid_i 等于 ((idi+vi1)modk)+1((id_i' + v_{i-1}) \bmod k) + 1
  • 真正的 lil_i 等于 ((li+vi1)modn)+1((l_i' + v_{i-1}) \bmod n) + 1
  • 真正的 rir_i 等于 ((ri+vi1)modn)+1((r_i' + v_{i-1}) \bmod n) + 1

其中 vi1v_{i-1} 表示第 (i1)(i-1) 个询问的答案。定义 v0=0v_0 = 0。由于采用了编码,你需要先计算出每次询问的答案才能处理下一个询问。保证 1idik1 \le id_i \le k1lirin1 \le l_i \le r_i \le n

还保证所有测试数据中 n×kn \times k 之和与 qq 之和都不超过 2×1052 \times 10^5

Output Format

对于每组测试数据,输出 qq 行。每行一个整数,表示第 ii 个询问的模糊对数量。

2
5 2 2
1 2 3 4 5
5 4 3 2 1
1 0 2
1 2 1
5 3 3
1 2 3 4 5
1 3 2 4 5
1 2 3 5 4
0 0 2
0 2 3
1 0 3
3
10
1
1
2

Hint

对于第一个样例测试,经过解码后的两次询问分别为 2 1 3\texttt{2 1 3}1 1 5\texttt{1 1 5}

对于第二个样例测试,经过解码后的三次询问分别为 1 1 3\texttt{1 1 3}2 4 5\texttt{2 4 5}3 2 5\texttt{3 2 5}

由 ChatGPT 5 翻译