CFCF2163D1.Diadrash (Easy Version)

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

这是该问题的简单版本。本版本与其他版本的区别在于,你最多可以进行 $ \max(300, \lceil\frac{n}{2}\rceil+2) $ 次查询。只有当你解决了所有版本后,才可以进行 Hack。

本题为交互式题目。

有一个长度为 nn 的排列 pp(从 00n1n-1 的一个排列)对你隐藏。同时,给定 qq 个区间 [l1,r1],[l2,r2],,[lq,rq][l_1, r_1], [l_2, r_2], \ldots, [l_q, r_q],其中 1lirin1 \le l_i \le r_i \le n

你需要找出在输入给定的 qq 个区间中,pp 对应的子序列的最大 MEX\operatorname{MEX}。形式化地,你需要找出 $ \max_{i=1}^q {\operatorname{MEX}([p_{l_i}, p_{l_i+1}, \ldots, p_{r_i}])} $ 的值。为此,你最多可以进行 $ \max(300, \lceil\frac{n}{2}\rceil+2) $ 次如下类型的询问:

  • 任选任意两个整数 1lrn1 \le l \le r \le n,你会得到 MEX([pl,pl+1,,pr])\operatorname{MEX}([p_l, p_{l+1}, \ldots, p_r]) 的值。

^* 长度为 nn 的排列是 [0,1,,n1][0, 1, \ldots, n-1] 的一个重新排列,使得每个数仅出现一次。例如,序列 [0,3,1,2][0, 3, 1, 2] 是一个排列,而 [0,0,2,1][0, 0, 2, 1] 不是。

^\dagger MEX\operatorname{MEX} 指的是序列中未出现的最小非负整数。例如,MEX([0,0,1,3])=2\operatorname{MEX}([0, 0, 1, 3]) = 2MEX([1,2,2])=0\operatorname{MEX}([1, 2, 2]) = 0

输入格式

每组测试数据包含多组用例。第一行包含一个整数 tt1t1001 \le t \le 100),表示测试用例组数。

每组测试数据的第一行包含两个整数 nnqq4n1044 \le n \le 10^41q3×1051 \le q \le 3 \times 10^5),分别表示排列的长度和区间的数量。

接下来的 qq 行,每行包含两个整数 li,ril_i, r_i1lirin1 \le l_i \le r_i \le n)。

保证所有测试用例中 nn 之和不超过 10410^4qq 之和不超过 3×1053 \times 10^5

额外约束:同一组测试数据内没有重复的区间。

输入输出样例

  • 输入#1

    3
    4 3
    1 2
    2 4
    1 3
    
    2
    
    0
    
    1
    
    4
    
    6 6
    1 2
    2 4
    3 3
    4 6
    5 5
    6 6
    
    6
    
    1
    
    2
    
    4 4
    1 1
    2 2
    3 3
    4 4

    输出#1

    ? 1 3
    
    ? 4 4
    
    ? 1 1
    
    ? 1 4
    
    ! 2
    
    
    
    
    
    
    
    ? 1 6
    
    ? 3 3
    
    ? 2 4
    
    ! 2
    
    
    
    
    
    ! 1

说明/提示

在第一个样例中,隐藏的排列是 p=[0,3,1,2]p=[0,3,1,2],区间为 [1,2][1,2][2,4][2,4][1,3][1,3]。第三个区间是最优的,因为 MEX([p1,p2,p3])=MEX([0,3,1])=2\operatorname{MEX}([p_1, p_2, p_3]) = \operatorname{MEX}([0, 3, 1]) = 2,这是最大值。

在第一次查询中,询问 l=1,r=3l=1, r=3,Judge 返回 MEX([p1,p2,p3])=2\operatorname{MEX}([p_1, p_2, p_3])=2。第二次查询,询问 l=4,r=4l=4, r=4,Judge 返回 MEX([p4])=0\operatorname{MEX}([p_4])=0。类似地,MEX([p1])=1\operatorname{MEX}([p_1])=1MEX([p1,p2,p3,p4])=4\operatorname{MEX}([p_1, p_2, p_3, p_4])=4

通过推理可以得知答案是 22

在第二个样例中,p=[3,5,0,1,4,2]p=[3,5,0,1,4,2]

在第三个样例中,p=[0,1,2,3]p=[0,1,2,3]

请注意,这些只是交互方式的解释,并未展现任何解题策略。

由 ChatGPT 5 翻译

首页