#P1231. The Alphabet Game

    ID: 232 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>几何处理矩形合并边界检查Tehran 2002 Preliminary

The Alphabet Game

描述

小达拉最近学会了写一些字母(假设是 kk 个字母)。他和妹妹萨拉玩一个游戏。达拉在纸上画了一个网格,并在网格的单元格中写下了每个字母 pp 次。然后,他要求萨拉在网格的线条上画出若干条水平和/或垂直的粗线,使得每个不包含粗线的矩形中要么包含 pp 个相同字母,要么什么字母也没有。例如,考虑图 1 中给出的纸张,萨拉画了两条粗线,创建了四个满足上述条件的矩形。如果萨拉成功画出符合要求的线条,她就获胜。由于达拉对萨拉非常公平,他希望确保每个他给萨拉的案例都至少有一个解。你需要编写一个程序,帮助达拉决定每个案例是否能成功画出正确的线条。

输入

输入文件的第一行包含一个整数 tt (1<=t<=101 <= t <= 10),表示测试用例的数量,接着是每个测试用例的输入数据。每个测试用例的第一行包含两个整数 kk (1<=k<=261 <= k <= 26),表示字母的种类数,和 pp (1<=p<=101 <= p <= 10),表示每个字母的出现次数。接下来的 kk 行中,每行包含 pp 对整数 (xi,yi)(xi, yi),表示字母的每个实例的坐标。纸张的左上角坐标假定为 (1,1)(1, 1)。坐标是小于或等于 1,000,0001,000,000 的正整数。你可以假设没有一个单元格包含多个字母。

输出

对于每个测试用例,输出一行,包含一个单词 YESYESNONO,表示是否可以按照题目中的约束成功划分网格。

2
3 2
6 4 8 4
4 2 2 1
2 3 2 4
3 3
1 1 3 1 5 1
2 1 4 1 6 1
2 2 4 2 8 1
YES
NO

来源

Tehran 2002 Preliminary