#1833. AT_abc386_d-Diagonal Separation
AT_abc386_d-Diagonal Separation
好的,我来为你生成该题目的测试数据。
数据生成思路:
该题主要考察对于行列黑白分界点的判断。因此,生成数据时,需要重点考虑如何构造出 "Yes" 和 "No" 两种情况。
- "Yes" 情况: 可以构造较为规则的数据,例如先确定某一个行/列的分界点,然后围绕该分界点生成数据。
- "No" 情况: 可以构造冲突数据,例如在某一行中,强制左侧为白色,右侧为黑色。或者构造行列之间的矛盾。
生成策略:
- N 和 M 的范围: 题目已给出。
- 数据点数量: 生成 10 组数据。
- 数据类型: 按照题目要求,都是整数和字符。
- 数据合法性: 保证 在 范围内,且 唯一。
生成代码:
from cyaron import *
import random
for i in range(1, 11):
io = IO(file_prefix='./data/data', data_id=i)
N = randint(1, 100) if i <= 3 else randint(1000, 2000) if i <= 6 else randint(10**5, 10**5 + 1000) if i <= 9 else 10**9
M = randint(1, min(N * N, 2 * 10**5))
io.input_writeln(N, M)
occupied = set()
for _ in range(M):
X = randint(1, N)
Y = randint(1, N)
while (X, Y) in occupied:
X = randint(1, N)
Y = randint(1, N)
occupied.add((X, Y))
C = choice(['B', 'W'])
io.input_writeln(X, Y, C)
io.output_gen("std.exe") # 生成输出文件