CFCF2162F.Beautiful Intervals

普及+/提高

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

给定一个整数 nnmm 个区间。每个区间的形式为 [li,ri][l_i, r_i],满足 1lirin1 \le l_i \le r_i \le n。注意,区间可以重复。

定义 pp 为长度为 nn 的一个排列,包含所有整数 0,1,2,,n10,1,2,\dots,n-1,且每个只出现一次。

有一个多重集合 MM,最初为空。

对于每个区间 [li,ri][l_i, r_i]

  • 考虑子数组 p[liri]p[l_i \dots r_i]
  • 计算 vi=mex(p[liri])v_i = \operatorname{mex}(p[l_i \dots r_i])
  • viv_i 插入到 MM 中。

处理完所有区间后,M={v1,v2,,vm}M = \{v_1, v_2, \dots, v_m\}

你的任务是构造一个长度为 nn 的排列 pp,包含所有 0,1,2,,n10,1,2,\dots,n-1,使得 mex(M)\operatorname{mex}(M) 最小。

mex(a)\operatorname{mex}(a) 表示数组 aa 的最小未出现的非负整数。例如,mex([2,2,1])=0\operatorname{mex}([2,2,1])=0,因为 00 没有出现在数组中;而 mex([0,3,1,2])=4\operatorname{mex}([0,3,1,2])=4,因为 00112233 都出现了,但 44 没有出现。

输入格式

第一行包含一个整数 tt1t10001 \le t \le 1000)——表示测试用例的组数。每组测试用例的描述如下。

每组测试用例的第一行包含两个整数 nnmm3n30003 \le n \le 30001m30001 \le m \le 3000)。

接下来的 mm 行,每行包含两个用空格分隔的整数 li,ril_i, r_i1lirin1 \le l_i \le r_i \le n),表示一个区间。

保证所有测试用例中 nn 的总和不超过 30003000mm 的总和也不超过 30003000

输出格式

对于每个测试用例,输出一行,包含 nn 个两两不同的整数 p1,p2,,pnp_1,p_2,\ldots,p_n,即排列 pp,需满足 0pi<n0\le p_i < n 且每个数只出现一次,并使得 mex(M)\operatorname{mex}(M) 最小。

如果有多组答案,输出任意一组都可以。

输入输出样例

  • 输入#1

    5
    3 1
    1 2
    3 5
    1 1
    1 2
    2 2
    2 2
    2 3
    4 5
    1 2
    2 3
    3 4
    1 1
    4 4
    5 4
    3 5
    1 1
    2 4
    4 4
    4 2
    1 3
    2 4

    输出#1

    2 0 1
    2 1 0 
    0 2 1 3 
    2 0 1 3 4 
    3 1 0 2

说明/提示

对于第一个测试用例,如果我们将 p=[2,0,1]p = [2, 0, 1],则 M={mex(2,0)}={1}M = \{\operatorname{mex}(2, 0)\} = \{1\}。这时 mex(M)=0\operatorname{mex}(M) = 0

对于第三个测试用例,如果我们将 p=[0,2,1,3]p = [0, 2, 1, 3],则 M={mex(0,2),mex(2,1),mex(1,3),mex(0),mex(3)}={1,0,0,1,0}M = \{\operatorname{mex}(0, 2), \operatorname{mex}(2, 1), \operatorname{mex}(1, 3), \operatorname{mex}(0), \operatorname{mex}(3)\} = \{1, 0, 0, 1, 0\},这时 mex(M)=2\operatorname{mex}(M) = 2

对于第四个测试用例,若我们取 p=[2,0,1,3,4]p = [2, 0, 1, 3, 4],则 M={mex(1,3,4),mex(2),mex(0,1,3),mex(4)}={0,0,2,0}M = \{\operatorname{mex}(1, 3, 4), \operatorname{mex}(2), \operatorname{mex}(0, 1, 3), \operatorname{mex}(4)\} = \{0, 0, 2, 0\},这时 mex(M)=1\operatorname{mex}(M) = 1

对于第五个测试用例,若 p=[3,1,0,2]p = [3, 1, 0, 2],则 M={mex(3,1,0),mex(1,0,2)}={2,3}M = \{\operatorname{mex}(3, 1, 0), \operatorname{mex}(1, 0, 2)\} = \{2, 3\},这时 mex(M)=0\operatorname{mex}(M) = 0

首页