#P13633. [NWRRC 2021] First to Solve

[NWRRC 2021] First to Solve

Description

著名的 Forcedeltas 编程竞赛有 nn 名参赛者,mm 道题目,比赛持续 kk 分钟。

对于每位参赛者 ii 和每道题目 jj,已知一个整数 ai,ja_{i, j}。如果 ai,j=0a_{i, j} = 0,表示参赛者 ii 无法解出题目 jj。否则,表示参赛者 ii 恰好需要 ai,ja_{i, j} 分钟解出题目 jj

所有参赛者都遵循相同的策略。具体来说,每位参赛者会列出所有自己能解出的题目,将该列表等概率随机打乱,然后按顺序依次解题,直到列表结束或比赛结束。

例如,若参赛者 ii 打乱后的题目列表为 j1,j2,j_1, j_2, \ldots,则他会在第 ai,j1a_{i, j_1} 分钟解出题目 j1j_1,在第 ai,j1+ai,j2a_{i, j_1} + a_{i, j_2} 分钟解出题目 j2j_2,以此类推。注意,不能在第 k+1k+1 分钟或更晚解出题目。

我们说参赛者 ii 获得题目 jj 的“最先解出”奖(First to Solve award),当且仅当没有其他参赛者比他更早解出题目 jj。特别地,多个参赛者可以同时获得同一道题的该奖项。

请计算每位参赛者期望获得的奖项数,答案对 998244353998\,244\,353 取模(具体见输出格式)。

Input Format

第一行包含三个整数 nnmmkk,分别表示参赛者人数、题目数量和比赛时长(1n5001 \le n \le 5001m261 \le m \le 261k3001 \le k \le 300)。

接下来的 nn 行,每行包含 mm 个整数 ai,1,ai,2,,ai,ma_{i, 1}, a_{i, 2}, \ldots, a_{i, m}0ai,jk0 \le a_{i, j} \le k)。其中第 jj 个整数表示参赛者 ii 解题 jj 所需的分钟数,若为 00 则表示无法解出该题。

Output Format

输出 nn 个整数,第 ii 个整数表示第 ii 位参赛者期望获得的奖项数,对 998244353998\,244\,353 取模。

形式化地,设 M=998244353M = 998\,244\,353。可以证明,期望奖项数可表示为不可约分数 pq\frac{p}{q},其中 ppqq 为整数且 q≢0(modM)q \not\equiv 0 \pmod{M}。请输出满足 0x<M0 \le x < Mxqp(modM)x \cdot q \equiv p \pmod{M} 的整数 xx

5 3 60
30 0 0
40 20 0
30 60 0
0 0 0
60 60 1
1
1
249561089
0
499122177

Hint

在样例测试中,第 11 位参赛者总能获得题目 11 的奖项,第 22 位参赛者总能获得题目 22 的奖项,第 33 位参赛者期望获得的奖项数为 34\frac{3}{4},第 44 位参赛者无法获得任何奖项,第 55 位参赛者期望获得的奖项数为 12\frac{1}{2}

由 ChatGPT 4.1 翻译