#P17548. [JAG 2026 Summer Camp #2] Longest Path on DAG

    ID: 20274 远端评测题 2000ms 2048MiB 尝试: 0 已通过: 0 显示难度省选/NOI− 上传者: 标签>动态规划 DP二分cdq 分治交互题Special JudgeICPC2026

[JAG 2026 Summer Camp #2] Longest Path on DAG

题目描述

这是一道交互题。

给定一个正整数 NN,以及一个长度为 NN、每个元素均为 00 或 11 的序列 S=(S1,S2,…,SN)S=(S_1,S_2,\ldots,S_N)。

有一张有向二分图 GG,它有 NN 个顶点,编号为 1,2,…,N1,2,\ldots,N。GG 的每个顶点都有颜色:若 Sv=0S_v=0,则顶点 vv 为白色;若 Sv=1S_v=1,则为黑色。GG 中的每条有向边 (u,v)(u,v) 都满足以下两个条件:

  • u<vu<v。
  • 顶点 uu 和 vv 的颜色不同。

交互程序隐藏了 GG,不会直接给出任何边的信息。你可以向交互程序发送以下两类询问,总次数至多为 1500015000:

  • in u V:指定一个黑色顶点 uu,以及一个由零个或多个白色顶点组成的集合 VV。交互程序回答:是否存在顶点 v∈Vv\in V,使得边 (v,u)(v,u) 存在。
  • out u V:指定一个黑色顶点 uu,以及一个由零个或多个白色顶点组成的集合 VV。交互程序回答:是否存在顶点 v∈Vv\in V,使得边 (u,v)(u,v) 存在。

输出 GG 的任意一条最长路径。

注意,隐藏的图 GG 在交互开始之前就已经确定,并且始终保持不变。

交互格式

首先,从标准输入读入整数 NN(2≤N≤5002\le N\le 500)。下一行包含 NN 个以空格分隔的整数 S1,S2,…,SNS_1,S_2,\ldots,S_N,每个整数均为 00 或 11。

N
S_1 S_2 ... S_N

读入输入后,你可以按下述方式进行 in 询问与 out 询问,总次数至多为 1500015000。

in 询问

首先,选择一个黑色顶点 uu,以及一个由零个或多个白色顶点组成的集合 VV。然后构造一个长度为 NN、仅由 0 和 1 组成的字符串 T=T1T2…TNT=T_1T_2\ldots T_N,使得 TvT_v 为 1 当且仅当 v∈Vv\in V。按以下格式向标准输出输出询问:

in u T

交互程序判断是否存在顶点 v∈Vv\in V,使得边 (v,u)(v,u) 存在。若存在这样的顶点,则令 r=1r=1;否则令 r=0r=0。你将从标准输入按以下格式读入 rr:

r

out 询问

首先,选择一个黑色顶点 uu,以及一个由零个或多个白色顶点组成的集合 VV。然后构造一个长度为 NN、仅由 0 和 1 组成的字符串 T=T1T2…TNT=T_1T_2\ldots T_N,使得 TvT_v 为 1 当且仅当 v∈Vv\in V。按以下格式向标准输出输出询问:

out u T

交互程序判断是否存在顶点 v∈Vv\in V,使得边 (u,v)(u,v) 存在。若存在这样的顶点,则令 r=1r=1;否则令 r=0r=0。你将从标准输入按以下格式读入 rr:

r

确定一条最长路径后,令 v1,v2,…,vkv_1,v_2,\ldots,v_k 为各顶点在路径上出现的顺序,按以下格式向标准输出输出答案:

! k v_1 v_2 ... v_k

输出答案后,立即终止程序。

交互评测注意事项

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

每次输出后,都要输出换行符并刷新标准输出缓冲区。

如果询问次数超过 1500015000,评测结果未定义。注意,输出答案不计作一次询问。

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

提示

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