E. 陈千语不是啥龙 [EGOI 2025 Dark Ride]

    Type: Interactive 1000ms 256MiB

陈千语不是啥龙 [EGOI 2025 Dark Ride]

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目背景

粉色奶龙和啥龙在van游戏

Alt text

题目

啥龙面前有 NN 个仓库取货口,从左到右编号为 00N1N-1 ,每个取货口可以指定输出两种矿物之一: 源矿 或 蓝铁矿。取货口连接着一个传送带系统,会把出货口的输出按照一定顺序打乱并传送到 NN 个输出口,但是啥龙并不知道这个顺序。输出口从左到右编号为 00N1N-1,每个输出口前有一个速冻仔。

粉色奶龙会让速冻仔从左到右报数,报数规则如下:

  • 最左边的速冻仔报 00
  • 对于其他速冻仔,如果自己面前的矿物与左边相邻的速冻仔面前的矿物不同,则报左边速冻仔的报数加 11;否则报与左边相同的数。

然后粉色奶龙会告诉啥龙最后一个速冻仔报了什么数。

啥龙可以多次进行实验:每次她可以自由设定所有输入口的矿物种类,然后得到最后一个速冻仔的报数。她的目标是确定两个端点输出口(输出口 00 和输出口 N1N-1)对应哪两个取货口。

由于啥龙的智商超群,所以请来了管理员你来狐假虎威帮助她赢得游戏。

交互方式

  • 你的程序应首先读取一行包含整数 NN:仓库取货口的数量。
  • 然后,你的程序应与交互器交互。要开始一次实验,你应输出一行以问号 ? 开头,然后是一个长度为 NN 的字符串,有 00 (原矿)和 11 (蓝铁矿)组成,表示你如何设置 NN 个取货口的输出。然后,你的程序应读取一个整数 ll (0l<N)(0 \leq l < N),即最后一个速冻仔报的数。
  • 当你想要回答时,输出一行以感叹号 ! 开头,后面跟着两个整数AABB (0A,B<N)(0\leq A,B < N)。为了让你的答案被接受,这必须是对应输出口 00 和输出口 N1N-1 的取货口编号,顺序不限。之后,你的程序应退出。

交互器是非自适应的,这意味着取货口和输出口的对应关系在交互开始前就已确定。

请确保在每次实验后刷新标准输出,否则你的程序可能会被判定为超时。在 Python 中,只要使用 input() 读取行,输出会自动刷新。在 C++ 中,cout << endl; 除了输出换行外还会刷新;如果使用 printf,请使用 fflush(stdout)

样例 1

隐藏的对应关系:

取货口 输出口
00 2
11 1
22 0
33 3
44 4
交互器输出 你的输出
5
? 10001
3
? 10110
3
! 2 4

在样例 1 中,有 55 个取货口。 第一次实验中,速冻仔(从左到右)面前的矿物分别是 源矿、源矿、蓝铁矿、源矿、蓝铁矿,报的数为 [0,0,1,2,3][0, 0, 1, 2, 3],所以交互器输出 33。 第二次实验中,速冻仔(从左到右)面前的矿物分别是 蓝铁矿、源矿、蓝铁矿、蓝铁矿、源矿,报的数为 [0,1,2,2,3][0, 1, 2, 2, 3],所以交互器输出 33。 最后啥龙得出对应输出口 00 和输出口 N1N-1 的取货口是第 22 和 第 44 个取货口(次序不限),! 2 4! 4 2 都是可接受的答案。

样例 2

隐藏的对应关系:

取货口 输出口
00 2
11 0
22 1
交互器输出 你的输出
3
? 111
0
? 110
2
? 000
0
! 1 0

在样例 2 中,有 33 个取货口。 第一次实验中,速冻仔(从左到右)面前的矿物分别是 蓝铁矿、蓝铁矿、蓝铁矿,报的数为 [0,0,0][0, 0, 0],所以交互器输出 00。 第二次实验中,速冻仔(从左到右)面前的矿物分别是 蓝铁矿、源矿、蓝铁矿,报的数为 [0,1,2][0, 1, 2],所以交互器输出 22。 第三次实验中,速冻仔(从左到右)面前的矿物分别是 源矿、源矿、源矿,报的数为 [0,0,0][0, 0, 0],所以交互器输出 00。 最后啥龙得出对应输出口 00 和输出口 N1N-1 的取货口是第 00 和 第 11 个取货口(次序不限),! 0 1! 1 0 都是可接受的答案。

样例 3

隐藏的对应关系:

取货口 输出口
00 0
11 1
22 2
33 3
交互器输出 你的输出
4
? 1010
3
! 0 3

在样例 3 中,有 44 个取货口。 第一次实验中,速冻仔(从左到右)面前的矿物分别是 蓝铁矿、源矿、蓝铁矿、源矿,报的数为 [0,1,2,3][0, 1, 2, 3],所以交互器输出 33。 最后啥龙得出对应输出口 00 和输出口 N1N-1 的取货口是第 00 和 第 33 个取货口(次序不限),! 0 3! 3 0 都是可接受的答案。

数据范围与提示

对于所有输入数据,满足:

  • 3N300003 \leq N \leq 30000
  • 你最多可以发起 3030 次实验,(输出最终答案不计入实验次数)。如果你超过这个限制,将得到判为 “Wrong Answer”。

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制
11 99 N=3N=3
22 1515 N30N \leq 30
33 1717 取货口 00 对应输出口 00
44 1616 NN 是偶数,一个端点输出口对应的的取货口在前半部分 (0A<N2)(0 \leq A < \frac{N}{2}),另一个端点输出口对应的取货口在后半部分 (N2B<N)( \frac{N}{2} \leq B < N)
55 1414 N1000N \leq 1000
66 2929 无附加限制

2025-2026年度 PCOI 第二季

Not Attended
Status
Done
Rule
IOI
Problem
9
Start at
2026-2-28 14:30
End at
2026-2-28 16:30
Duration
2 hour(s)
Host
Partic.
41