以下是用python造数据的代码:
from cyaron import IO
import random
import os
# 参数设置
NUM_TESTS = 2
MAX_N = 100000
MAX_A = 100000
MAX_M = 100000
for i in range(1, NUM_TESTS + 1):
ls = [0] * (MAX_A + 114514)
# 生成输入输出文件
io = IO(file_prefix="diary", data_id=i)
Mn = Mm = 100
Ma = MAX_A
n = random.randint(Mn - 100, Mn) # 为了演示,这里不使用最大值,避免生成时间过长
m = random.randint(Mn - 100, Mm)
# n = Mn = m = Mm
# 生成数组 a
a = [random.randint(1, Ma) for _ in range(n)]
io.input_writeln(n, m)
io.input_writeln(a)
for i in a:
ls[i] = 1
for _ in range(m):
t = random.randint(1, 2)
l = random.randint(1, n)
r = random.randint(l, n)
if t == 1:
x = random.randint(1, Ma)
y = random.randint(1, Ma)
while ls[x] == 0:
x = random.randint(1,Ma)
io.input_writeln(t, l, r, x, y)
ls[y] = 1
else:
k = random.randint(l,r) - l + 1
io.input_writeln(t, l, r, k)
io.output_gen("std.exe")
这是前 2 组数据 n,m≤100 的数据生成器