P12181 DerrickLo's Buildings (UBC002D)

题目描述

在某游戏中,DerrickLo 的任务是操作一堆建筑。这些建筑被摆放在了编号为 $1$ 到 $M$ 的空位上,它们的高度也分别为 $1$ 到 $M$。一开始,对于所有 $i = 1, 2, \dots, M$,高度为 $i$ 的建筑被摆在了 $i$ 号位置上。 在这个游戏中,有 $M$ 个挑战。具体地,第 $i$ 个挑战都会指定一个高度因数 $l = i$ 和目标长度 $N$,这个挑战的**得分**为在重新摆放建筑后,对于所有 $j = 1, 2, \dots N$,满足高度为 $j$ 的建筑被摆在了 $j \times l$ 号位置的数量。**注意:所有挑战的目标长度都是相同的,但高度因数是互不相同的。** 为了重新摆放这些建筑,DerrickLo 需要指定一个调换排列 $v$,每执行一次调换,就会**同时**将位置 $i$ 上的建筑移到 $v(i)$ 处。 由于 DerrickLo 并不是很看重得分是否最高,因此他指定的排列 $v$ 将是从所有 $1$ 到 $M$ 的排列中**等概率**选取的一个。不过,他还是很好奇,对于每一个挑战 $i$,在他分别调换 $1, 2, \dots, V$ 次时,他的期望得分是多少。 由于挑战的个数以及调换的次数实在太多,DerrickLo 希望你告诉所有这些得分之和模 $998244353$ 之后的结果。即: $$ \left(\sum_{i=1}^M\sum_{k=1}^VE\left(\sum_{j=1}^N[v_k(j) = i \times j]\right)\right)\bmod 998244353 $$ 其中 $v_k(j)$ 表示根据排列 $v$ 调换了 $k$ 次之后,高度为 $j$ 的建筑所在的位置编号。

输入格式

**本题有多组测试数据。** 第一行,一个正整数 $T$,表示测试数据的个数。 接下来 $T$ 行,每行三个整数 $N, M, V$,描述一个测试数据。 **注意:输入数据不一定在 `int` 范围内。**

输出格式

共 $T$ 行,每行一个整数,表示答案。

说明/提示

在样例中,$v$ 只有 $\{1, 2\}$ 与 $\{2, 1\}$ 两种取值。你需要计算: $$ \sum_{i=1}^2E([v(1) = i]) $$ 当 $i=1$ 时,$E([v(1) = 1]) = \frac 1 2$;当 $i=2$ 时,$E([v(1) = 2]) = \frac 1 2$。因此,求和之后是 $\frac{1 + 1}{2} = 1$。 --- 对于所有测试数据: - $1 \le T \le 5$。 - $1 \le N \le M \le 10^{12}$。 - $2 \le (M \bmod 998244353)$。 - $1 \le V \le 10^{12}$。 **注意:输入数据不一定在 `int` 范围内。**