#CF1738G. 反递增爱好者
反递增爱好者
反递增爱好者
- 时间限制:2 秒
- 内存限制:512 MiB
题目描述
给定一个 的网格。用 表示第 行第 列的格子。输入会说明每个格子是否允许删除。
你需要恰好删除 个格子,使未删除的格子中不存在长度为 的严格递增序列。也就是说,不能找到
使得对每个 都有 且 。
请输出任意一种合法删除方案;若不存在,输出无解。
输入格式
第一行一个整数 ,表示测试数据组数。
每组数据的第一行包含两个整数 。随后 行,每行一个长度为 的二进制串 :
- 表示格子 允许删除;
- 表示格子 必须保留。
输出格式
对每组数据:
- 若无解,输出一行
NO; - 否则输出一行
YES,再输出 行长度为 的二进制串。输出串中的0表示删除该格子,1表示保留该格子。
YES 与 NO 不区分大小写。
样例输入
4
2 2
10
01
4 3
1110
0101
1010
0111
5 5
01111
10111
11011
11101
11110
5 2
10000
01111
01111
01111
01111
样例输出
YES
01
11
YES
0011
1111
1111
1100
NO
YES
01111
11000
10000
10000
10000
数据范围
对所有数据,,,且所有测试数据中 的总和不超过 。
| 子任务编号 | 分值 | 特殊限制 |
|---|---|---|
| 1 | 20 | 每组 |
| 2 | 每组 | |
| 3 | 每组 | |
| 4 | 40 | 无特殊限制 |
说明
输出中的 0 必须对应输入中允许删除的格子,并且每组数据必须恰好输出 个 0。
本题为多解构造题,评测器会直接验证输出方案,不要求与样例输出相同。