#P2005. 便(then)
便(then)
【题目描述】
给出一个R* C的棋盘.共有R行C列,R* C个格子.现要在每个格子都填一个非负整数.使得任意一个2* 2的正方形区域都满足这样的性质:左上角的数字+右下角的数字=左下角的数字+右上角的数字.有些格子已经确定,你不能更改其中的数字.其他格子的数字由你决定.
这是一个符合要求的3*3的棋盘:
1 | 2 | 3 |
---|---|---|
2 | 3 | 4 |
4 | 5 | 6 |
不难验证每个2*2的区域都是符合要求的.
Orbitingflea想要知道一个可行的填充棋盘的方案.但是这个方案可能很大.所以你只需对给定的棋盘判定是否存在至少一种可行的填充棋盘的方案.
【输入格式】
第一行输入一个T,表示数据组数。接下来T组数据。
每组数据的第1行2个整数R,C表示棋盘的大小.
第2行1个整数n表示已经被填好数字的格子的数目.
接下来n行每行3个整数ri,ci,ai,表示第ri行ci列的格子被填上了数字ai.
【输出格式】
T行.第i行是第i组数据的答案.有合法方案时输出一行Yes,没有时输出一行No.
【样例输入】
6
2 2
3
1 1 0
1 2 10
2 1 20
2 3
5
1 1 0
1 2 10
1 3 20
2 1 30
2 3 40
2 2
3
1 1 20
1 2 10
2 1 0
3 3
4
1 1 0
1 3 10
3 1 10
3 3 20
2 2
4
1 1 0
1 2 10
2 1 30
2 2 20
1 1
1
1 1 -1
【样例输出】
Yes
No
No
Yes
No
No
【数据范围】
第1个测试点,R=1
第2,3个测试点,R*C<=12,如果有解,保证存在一个解使得所有数字大小不超过2
第4,5个测试点,R=2
第6,7个测试点,R=3
第8个测试点,1<=R,C<=20
第9个测试点,1<=R,C<=100
对于全部测试点,1<=T<=6,1<=R,C,n<=100000,1<=ri<=R,1<=ci<=C,同一个格子不会多次被填上数字.ai是整数且绝对值不超过10^9.