QOJ.ac

QOJ

Time Limit: 2.0 s Memory Limit: 2048 MB Interactive

#22859. DAG 上的最长路

Statistics

这是一道交互题。

给定一个正整数 $N$ 和一个长度为 $N$ 的序列 $S = (S_1, S_2, \ldots, S_N)$,其中每个元素都是 $0$ 或 $1$。

有一个包含 $N$ 个顶点的有向二分图 $G$,顶点编号为 $1, 2, \ldots, N$。图 $G$ 的每个顶点都被染色:若 $S_v = 0$,则顶点 $v$ 为白色;若 $S_v = 1$,则为黑色。图 $G$ 中的每条有向边 $(u, v)$ 都同时满足以下两个条件:

  • $u < v$。
  • 顶点 $u$ 和顶点 $v$ 的颜色不同。

评测机隐藏了图 $G$,不会直接给出关于其边的任何信息。相对地,你可以向评测机发送以下两种类型的查询,总计最多 $15000$ 次查询:

  • in $u$ $V$:针对一个黑色顶点 $u$ 以及一个由零个或多个白色顶点组成的集合 $V$ 向评测机提问。评测机会回答集合 $V$ 中是否存在顶点 $v$ 使得有向边 $(v, u)$ 存在。
  • out $u$ $V$:针对一个黑色顶点 $u$ 以及一个由零个或多个白色顶点组成的集合 $V$ 向评测机提问。评测机会回答集合 $V$ 中是否存在顶点 $v$ 使得有向边 $(u, v)$ 存在。

请输出图 $G$ 中任意一条最长路。

注意,隐藏的图 $G$ 在交互开始前就已经固定,且不会改变。

交互

首先,从标准输入给定一个整数 $N$($2 \le N \le 500$)。下一行包含 $N$ 个整数 $S_1, S_2, \ldots, S_N$,每个数都是 $0$ 或 $1$,以空格分隔。

$$ \begin{aligned} &N \\ &S_1 \ S_2 \ \ldots \ S_N \end{aligned} $$

读取输入后,你可以按如下方式进行总计最多 $15000$ 次 in 查询和 out 查询。

in 查询

首先,选择一个黑色顶点 $u$ 和一个由零个或多个白色顶点组成的集合 $V$。然后,构造一个长度为 $N$、仅由 $0$ 和 $1$ 组成的字符串 $T = T_1 T_2 \ldots T_N$,使得 $T_v$ 为 $1$ 当且仅当 $v \in V$。请按以下格式向标准输出打印查询:

$$ \text{in} \ u \ T $$

评测机会判断集合 $V$ 中是否存在顶点 $v$ 使得有向边 $(v, u)$ 存在。若存在这样的顶点则令 $r$ 为 $1$,否则为 $0$。数值 $r$ 会按以下格式从标准输入给出:

$$ r $$

out 查询

首先,选择一个黑色顶点 $u$ 和一个由零个或多个白色顶点组成的集合 $V$。然后,构造一个长度为 $N$、仅由 $0$ 和 $1$ 组成的字符串 $T = T_1 T_2 \ldots T_N$,使得 $T_v$ 为 $1$ 当且仅当 $v \in V$。请按以下格式向标准输出打印查询:

$$ \text{out} \ u \ T $$

评测机会判断集合 $V$ 中是否存在顶点 $v$ 使得有向边 $(u, v)$ 存在。若存在这样的顶点则令 $r$ 为 $1$,否则为 $0$。数值 $r$ 会按以下格式从标准输入给出:

$$ r $$

当你确定了一条最长路后,设 $v_1, v_2, \ldots, v_k$ 为按路径上出现顺序排列的顶点编号,并按以下格式向标准输出打印你的答案:

$$ ! \ k \ v_1 \ v_2 \ \ldots \ v_k $$

输出答案后请立即终止你的程序。

交互评测说明

如果你的输出不符合指定格式,或者你的程序在未输出答案的情况下终止,评测结果是未定义的。输出答案后请立即终止你的程序,否则评测结果是未定义的。

每当你输出内容时,请在末尾输出换行符并刷新标准输出。

如果你进行了超过 $15000$ 次查询,评测结果是未定义的。注意,输出答案不计入查询次数。

样例

输入格式 1

5
1 0 0 1 0

1

1

0

1

输出格式 1


out 1 01101

in 4 01100

in 4 01000

out 4 01001

! 4 1 3 4 5

说明

在本次样例交互中,隐藏图的边集为 $E(G) = \{(1, 2), (1, 3), (1, 5), (3, 4), (4, 5)\}$。这一信息不会提供给程序。

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#2929EditorialOpenNew Editorial for Problem #22859Coffee_zzzView
#2907EditorialOpenNew Editorial for Problem #22859louyuxuanView

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.