#P17548. [JAG 2026 Summer Camp #2] Longest Path on DAG
[JAG 2026 Summer Camp #2] Longest Path on DAG
题目描述
这是一道交互题。
给定一个正整数 ,以及一个长度为 、每个元素均为 或 的序列 。
有一张有向二分图 ,它有 个顶点,编号为 。 的每个顶点都有颜色:若 ,则顶点 为白色;若 ,则为黑色。 中的每条有向边 都满足以下两个条件:
- 。
- 顶点 和 的颜色不同。
交互程序隐藏了 ,不会直接给出任何边的信息。你可以向交互程序发送以下两类询问,总次数至多为 :
in u V:指定一个黑色顶点 ,以及一个由零个或多个白色顶点组成的集合 。交互程序回答:是否存在顶点 ,使得边 存在。out u V:指定一个黑色顶点 ,以及一个由零个或多个白色顶点组成的集合 。交互程序回答:是否存在顶点 ,使得边 存在。
输出 的任意一条最长路径。
注意,隐藏的图 在交互开始之前就已经确定,并且始终保持不变。
交互格式
首先,从标准输入读入整数 ()。下一行包含 个以空格分隔的整数 ,每个整数均为 或 。
N
S_1 S_2 ... S_N
读入输入后,你可以按下述方式进行 in 询问与 out 询问,总次数至多为 。
in 询问
首先,选择一个黑色顶点 ,以及一个由零个或多个白色顶点组成的集合 。然后构造一个长度为 、仅由 0 和 1 组成的字符串 ,使得 为 1 当且仅当 。按以下格式向标准输出输出询问:
in u T
交互程序判断是否存在顶点 ,使得边 存在。若存在这样的顶点,则令 ;否则令 。你将从标准输入按以下格式读入 :
r
out 询问
首先,选择一个黑色顶点 ,以及一个由零个或多个白色顶点组成的集合 。然后构造一个长度为 、仅由 0 和 1 组成的字符串 ,使得 为 1 当且仅当 。按以下格式向标准输出输出询问:
out u T
交互程序判断是否存在顶点 ,使得边 存在。若存在这样的顶点,则令 ;否则令 。你将从标准输入按以下格式读入 :
r
确定一条最长路径后,令 为各顶点在路径上出现的顺序,按以下格式向标准输出输出答案:
! k v_1 v_2 ... v_k
输出答案后,立即终止程序。
交互评测注意事项
如果输出不符合指定格式,或者程序在没有输出答案的情况下终止,评测结果未定义。输出答案后应立即终止程序,否则评测结果未定义。
每次输出后,都要输出换行符并刷新标准输出缓冲区。
如果询问次数超过 ,评测结果未定义。注意,输出答案不计作一次询问。
5
1 0 0 1 0
1
1
0
1
out 1 01101
in 4 01100
in 4 01000
out 4 01001
! 4 1 3 4 5
提示
在这个交互样例中,隐藏图的边集为 。这些信息不会提供给你的程序。