ZHY 的矩阵
题目背景
温馨提示:本题不允许套取数据。
题目描述
ZHY 的记忆中有一个 $k$ 行 $n$ 列的 01 矩阵 $A$,满足下列条件:
- 每一列都至多有一个 $1$。
- 每行相邻的两个 $1$ 所在的两列夹出的 $k$ 行的矩形(包括这两列)内至少有三个 $1$。
突然,ZHY 想起来了矩阵中 $x$ 个位置的值。请你计算有多少种填充 $A$ 的剩余位置的方案,使得 $A$ 满足条件。
----
形式化的讲,设 $A$ 第 $i$ 行第 $j$ 列的数为 $A_{i,j}$,则 $A$ 满足下列条件:
- 对于 $\forall i \in [1,k],\kern{2pt}j \in [1,n]$,$A_{i,j} \in \{0,1\}$。
- 对于 $\forall i \in [1,n]$,$\displaystyle\sum_{j=1}^{k} A_{j,i}\le 1$。
- 对于 $\forall i,j \in [1,n],\kern{2pt}p \in [1,k]$ 且 $j>i$,若有 $A_{p,i}=A_{p,j}=1,\displaystyle \sum_{x=i}^{j}A_{p,x}=2$,则有 $\Big(\displaystyle \sum_{x=1}^{k} \sum_{y=i}^{j} A_{x,y}\Big) \ge 3$。
- 对于 $\forall i\in[1,x]$,有 $A_{a_{i},b_{i}}=c_{i}$。
由于答案可能很大,你只需告诉 ZHY 答案对 $10^{9}+7$ 取模的结果。定义两个矩阵 $A,A'$ 不同,当且仅当存在 $i\in[1,k]$,$j\in[1,n]$ 满足 $A_{i,j}\ne A'_{i,j}$。
输入输出格式
输入格式
第一行三个整数,表示 $n,k,x$。
接下来 $x$ 行,每行三个整数 $a_{i},b_{i},c_{i}$。
输出格式
一行一个整数,表示答案。
输入输出样例
输入样例 #1
3 2 2
1 1 1
2 2 0
输出样例 #1
2
说明
**样例解释**
满足条件的矩阵只有以下 $2$ 种:
$$
\begin{Bmatrix}
1&0&0\\
0&0&0
\end{Bmatrix}
$$
$$
\begin{Bmatrix}
1&0&0\\
0&0&1
\end{Bmatrix}
$$
----
**本题采用捆绑测试。**
| $\mathrm{Subtask} \kern{2pt} \mathrm{id}$ | $n$ | $x$ | 特殊性质 | 分值 |
| :-----: | :-----: | :-----: | :-----: | :-----: |
| $0$ | $\le 8$ | $\le 8$ | $k=2$ | $12$ |
| $1$ | $\le 2 \times 10^{5}$ | $\le 2\times 10^{5}$ | 无 | $26$ |
| $2$ | $\le 10^{9}$ | $=0$ | 无 | $23$ |
| $3$ | $\le 10^{9}$ | $\le 2\times 10^{5}$ | $c_{i}=1$ | $15$ |
| $4$ | $\le 10^{9}$ | $\le 2\times 10^{5}$ | 无 | $24$ |
对于所有数据,$1 \le n \le 10^{9}$,$0 \le x \le 2\times 10^{5}$,$2\le k \le 100$。$1 \le a_{i} \le k$,$1 \le b_{i} \le n$,$c_{i} \in \{0,1\}$。保证不存在一对 $i,j \in [1,x],\kern{2pt}i\neq j$,满足 $a_{i}=a_{j},\kern{2pt}b_{i}=b_{j}$。