题目背景
温馨提示:本题不允许套取数据。
题目描述
ZHY 的记忆中有一个 k 行 n 列的 01 矩阵 A,满足下列条件:
- 每一列都至多有一个 1。
- 每行相邻的两个 1 所在的两列夹出的 k 行的矩形(包括这两列)内至少有三个 1。
突然,ZHY 想起来了矩阵中 x 个位置的值。请你计算有多少种填充 A 的剩余位置的方案,使得 A 满足条件。
形式化的讲,设 A 第 i 行第 j 列的数为 Ai,j,则 A 满足下列条件:
-
对于 ∀i∈[1,k],j∈[1,n],Ai,j∈{0,1}。
-
对于 ∀i∈[1,n],j=1∑kAj,i≤1。
-
对于 ∀i,j∈[1,n],p∈[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$。
-
对于 ∀i∈[1,x],有 Aai,bi=ci。
由于答案可能很大,你只需告诉 ZHY 答案对 109+7 取模的结果。定义两个矩阵 A,A′ 不同,当且仅当存在 i∈[1,k],j∈[1,n] 满足 Ai,j=Ai,j′。
输入格式
第一行三个整数,表示 n,k,x。
接下来 x 行,每行三个整数 ai,bi,ci。
输出格式
一行一个整数,表示答案。
3 2 2
1 1 1
2 2 0
2
提示
样例解释
满足条件的矩阵只有以下 2 种:
{100000}
{100001}
本题采用捆绑测试。
Subtaskid |
n |
x |
特殊性质 |
分值 |
0 |
≤8 |
k=2 |
12 |
1 |
≤2×105 |
≤2×105 |
无 |
26 |
2 |
≤109 |
=0 |
23 |
3 |
≤2×105 |
ci=1 |
15 |
4 |
无 |
24 |
对于所有数据,1≤n≤109,0≤x≤2×105,2≤k≤100。1≤ai≤k,1≤bi≤n,ci∈{0,1}。保证不存在一对 i,j∈[1,x],i=j,满足 ai=aj,bi=bj。