题目名来自:晴る - ヨルシカ
题目描述
考虑 n×m 的网格,现在你需要给每个格子黑白染色。定义一种染色方案合法,当且仅当能够用 1×2 的纸条不重叠且不超出网格边界地恰好覆盖所有白色格子,恰好不覆盖所有黑色格子。
现在有 q 个约束 (xi,yi,ci)(1≤i≤q),其中 1≤xi≤n,1≤yi≤m,ci∈{0,1}。如果 ci=0,表示格子 (xi,yi) 必须染成白色;否则表示格子 (xi,yi) 必须被染成黑色。
在此基础上,云浅想让你求出合法染色方案数对 998244353 取模的值。
输入格式
第一行三个正整数 n,m,q。
接下来 q 行,第 i+1 三个非负整数 xi,yi,ci。
输出格式
输出一行一个非负整数表示合法染色方案数对 998244353 取模的值。
样例 1 输入
2 2 0
样例 1 输出
6
样例 1 解释
用 0
表示这个格子染白,1
表示染黑,则所有合法方案为:
00 10 01 11 00 11
00 10 01 00 11 11
样例 2 输入
2 2 1
1 1 1
样例 2 输出
3
样例 2 解释
用 0
表示这个格子染白,1
表示染黑,则所有合法方案为:
10 11 11
10 00 11
样例 3 输入
3 4 2
1 2 1
2 3 0
样例 3 输出
146
样例 4 输入
5 1145141919 0
样例 4 输出
200647880
测试点约束
对于所有数据:1≤n≤7,1≤m≤1018,0≤q≤300。保证不存在 i=j 使得 (xi,yi)=(xj,yj)。
子任务编号 |
n |
m |
q |
分值 |
依赖子任务 |
Subtask #1 |
≤4 |
≤5 |
10 |
无 |
Subtask #2 |
≤100 |
=0 |
6 |
Subtask #3 |
≤100 |
11 |
1,2 |
Subtask #4 |
≤5 |
≤105 |
10 |
1,2,3 |
Subtask #5 |
≤109 |
=0 |
5 |
2 |
Subtask #6 |
≤300 |
13 |
1,2,3,4,5 |
Subtask #7 |
≤6 |
≤1018 |
=0 |
10 |
2,5 |
Subtask #8 |
≤300 |
15 |
1,2,3,4,5,6,7 |
Subtask #9 |
≤7 |
20 |
1,2,3,4,5,6,7,8 |