CF1363D.Guess The Maximums

提高+/省选-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

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

题目描述

This is an interactive problem.

Ayush devised a new scheme to set the password of his lock. The lock has kk slots where each slot can hold integers from 11 to nn. The password PP is a sequence of kk integers each in the range [1,n][1, n], ii-th element of which goes into the ii-th slot of the lock.

To set the password of his lock, Ayush comes up with an array AA of nn integers each in the range [1,n][1, n] (not necessarily distinct). He then picks kk non-empty mutually disjoint subsets of indices S1,S2,...,SkS_1, S_2, ..., S_k (Si∩i≠jSj=∅)(S_i \underset{i \neq j} \cap S_j = \emptyset) and sets his password as Pi=max⁡j∉SiA[j]P_i = \max\limits_{j \notin S_i} A[j]. In other words, the ii-th integer in the password is equal to the maximum over all elements of AA whose indices do not belong to SiS_i.

You are given the subsets of indices chosen by Ayush. You need to guess the password. To make a query, you can choose a non-empty subset of indices of the array and ask the maximum of all elements of the array with index in this subset. You can ask no more than 12 queries.

这是一个交互式问题。

Ayush 设计了一种新的锁密码设置方案。该锁有 kk 个槽位,每个槽位可存储 11 到 nn 之间的整数。密码 PP 是一个长度为 kk 的整数序列,其中每个元素均在区间 [1,n][1, n] 内,第 ii 个元素填入锁的第 ii 个槽位。

为设置锁的密码,Ayush 构造了一个长度为 nn 的数组 AA,其中每个元素均在区间 [1,n][1, n] 内(元素不一定互异)。接着,他选取 kk 个非空且两两不相交的下标子集 S1,S2,…,SkS_1, S_2, \dots, S_k(即对任意 i≠ji \neq j,有 Si∩Sj=∅S_i \cap S_j = \emptyset),并按如下方式设定密码:Pi=max⁡j∉SiA[j]P_i = \max\limits_{j \notin S_i} A[j]。换言之,密码的第 ii 个整数等于数组 AA 中所有下标不属于 SiS_i 的元素的最大值。

你已知 Ayush 所选的这些下标子集。你需要猜出密码。每次查询时,你可以选择数组的一个非空下标子集,并询问该子集中所有下标对应的数组元素的最大值。你至多可进行 12 次查询。

输入格式

The first line of the input contains a single integer tt (1≤t≤10)(1 \leq t \leq 10) — the number of test cases. The description of the test cases follows.

The first line of each test case contains two integers nn and kk (2≤n≤1000,1≤k≤n)(2 \leq n \leq 1000, 1 \leq k \leq n) — the size of the array and the number of subsets. kk lines follow. The ii-th line contains an integer cc (1≤c<n)(1 \leq c \lt n) — the size of subset SiS_i, followed by cc distinct integers in the range [1,n][1, n] — indices from the subset SiS_i.

It is guaranteed that the intersection of any two subsets is empty.

输入的第一行包含一个整数 tt(1≤t≤101 \leq t \leq 10)——测试用例的数量。接下来是各测试用例的描述。

每个测试用例的第一行包含两个整数 nn 和 kk(2≤n≤10002 \leq n \leq 1000,1≤k≤n1 \leq k \leq n)——数组的大小以及子集的数量。随后是 kk 行。第 ii 行首先是一个整数 cc(1≤c<n1 \leq c \lt n)——子集 SiS_i 的大小,接着是 cc 个互不相同的整数,取值范围为 [1,n][1, n]——即子集 SiS_i 中的下标。

保证任意两个子集的交集为空。

输入输出样例

  • 输入#1

    1
    4 2
    2 1 3
    2 2 4
    
    1
    
    2
    
    3
    
    4
    
    Correct

    输出#1

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

说明/提示

The array AA in the example is [1,2,3,4][1, 2, 3, 4]. The length of the password is 22. The first element of the password is the maximum of A[2]A[2], A[4]A[4] (since the first subset contains indices 11 and 33, we take maximum over remaining indices). The second element of the password is the maximum of A[1]A[1], A[3]A[3] (since the second subset contains indices 22, 44).

Do not forget to read the string "Correct" / "Incorrect" after guessing the password.

示例中的数组 AA 为 [1,2,3,4][1, 2, 3, 4]。密码长度为 22。密码的第一个元素是 A[2]A[2] 与 A[4]A[4] 的最大值(因为第一个子集包含下标 11 和 33,故在剩余下标上取最大值);密码的第二个元素是 A[1]A[1] 与 A[3]A[3] 的最大值(因为第二个子集包含下标 22、44)。

猜测密码后,切勿忘记读取字符串 "Correct" / "Incorrect"。

输入解题思路,AI测评打分。不知道怎么写?

首页