#P16116. [2026年山东集训一轮]矩阵

[2026年山东集训一轮]矩阵

题目描述

对于一个 n×mn\times m0101 矩阵,定义 xix_i 表示第 ii 行从左到右形成的长度为 mm0101 字符串,定义 yiy_i 表示第 ii 列从上到下形成的长度为 nn0101 字符串。

定义该矩阵合法,当且仅当:

i<n,xixi+1,\forall i<n, \quad x_i\le x_{i+1},

i<m,yiyi+1.\forall i<m, \quad y_i\le y_{i+1}.

这里大小关系指字典序比较。

给定 N,M,modN,M,mod,你需要对于所有 nN,mMn\le N,m\le M,求出 n×mn\times m 大小的合法矩阵个数对 modmod 取模的结果。不保证 modmod 是质数。

输入格式

从文件 matrix.in 中读入数据。

第一行三个整数 N,M,modN,M,mod

输出格式

输出到文件 matrix.out 中。

输出一个大小为 N×MN\times M 的整数矩阵。第 ii 行第 jj 列的元素表示 n=i,m=jn=i,m=j 时的答案。

样例 1 输入

3 3 998244353

样例 1 输出

2 3 4
3 7 14
4 14 45

数据范围

对于所有数据:

  • 1N,M701\le N,M\le 70
  • 9×108mod1099\times 10^8\le mod\le 10^9
  • 不保证 modmod 是质数。
子任务 NN MM 分数
1 4 5
2 10
3 13 20
4 20
5 70 45