题库练习 Interactive Graph (Simple Version)
← 上一题 下一题 →

A16711 | Interactive Graph (Simple Version)

时间限制1s
内存限制256MB
通过 / 提交0/0

题目描述

这是本题的简单版本。各版本的区别在于,本版本中你最多可以发起 $32 \cdot (n + m)$ 次询问,且 $n \leq 15$。只有当你解决了所有版本时,你才能进行 hack。

本题为交互题。

出题人想好了一个有向无环图(无自环且无重边),图包含 $n$ 个点和 $m$ 条边。

你的任务是通过发问,判断图中存在哪些边。你可以提出如下一类询问:在该图中,所有路径按字典序排序后,第 $k$ 条路径是怎样的?

图中的一条路径定义为一系列顶点 $u_{1}, u_{2}, \dots, u_{l}$,其中对于任意 $i < l$,图中存在一条从 $u_i$ 到 $u_{i+1}$ 的有向边 $(u_i, u_{i+1})$。

你的总询问次数不得超过 $32 \cdot (n + m)$。

$^*$ 一个序列 $a$ 按字典序小于序列 $b$,当且仅当满足以下条件之一:

- $a$ 是 $b$ 的前缀,且 $a \ne b$;
- 在 $a$ 和 $b$ 的第一个不同的位置,$a$ 该处的元素小于 $b$ 该处对应元素。

输入格式

每个测试点包含多组测试数据。第一行包含一个整数 $t$($1 \le t \le 10$),表示数据组数。

每组测试数据包含一行一个整数 $n$($1 \le n \le 15$),表示图的顶点数。

保证所给图无环且无重边。

注意:你并不知道 $m$ 的值。

输出格式

(交互题,无标准输出格式)

输入输出样例

输入 #1
3
5

1 1

2 1 2

3 1 2 4

3 1 2 5

2 1 3

3 1 3 4

3 1 3 5

1 2

1 3

1 4

1 5

1

0

2

1 1

1 2

2 2 1
输出 #1
? 1

? 2

? 3

? 4

? 5

? 6

? 7

? 8

? 11

? 14

? 15

! 6
1 3
1 2
2 4
3 4
2 5
3 5

? 2

! 0

? 1

? 2

? 3

! 1
2 1
C++ 编辑器
输入
输出