AT_s8pc_4_h.Huge Kingdom: Atcoder
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
本题为马拉松题。出题者的解法并不一定能获得满分,请尽量取得更高的得分。
配分:1500 分。
Atcoder 王国由 N 个城市和 N−1 条道路组成。
此外,该王国是连通的。也就是说,是一棵树。
你需要猜出王国的结构。
这里的结构指的是每条道路连接了编号为哪两个城市。
你可以按照如下方式进行询问以推断该结构:
- 输出一个长度为 N 的字符串 S。当 Si=1 时,第 i 个城市被涂黑;当 Si=0 时,第 i 个城市被涂白。
- 考虑 N 个顶点的图 G。
- 如果某条道路两端的城市都被涂黑,则在图 G 中添加该边。
- 返回 G 的每个连通分量的「树的直径」的平方的总和。
例如,若结构如图所示,且 S="11001111",则返回的值如下图所示。

在尽量少的询问次数下,推断出王国的结构。
输入格式
本题为交互题。
最开始,会输入如下内容:
N
- 一行,给出 Atcoder 王国的城市数 N。
接下来,你可以按如下格式进行询问:
? S
S 为你要查询的字符串(即城市涂色方案),长度必须为 N。
每次询问后,会返回如下内容:
d
按照题目描述的方法构建图 G,返回 G 的每个连通分量的「树的直径」的平方的总和。
最后,你需按如下格式输出答案:
! (a1,b1) (a2,b2) (a3,b3) … (aN−1,bN−1)
表示你已推断出 Atcoder 王国的结构。
(ai,bi) 表示城市 ai 与城市 bi 直接相连。
注意,道路的输出顺序、每条道路 (ai,bi) 或 (bi,ai) 的顺序均可任选。
输入输出样例
输入#1
N=4 0 1 1 2 1 3
输出#1
说明/提示
限制
- N=200
- Atcoder 王国有 N−1 条道路,且是连通的
- 城市编号为 0 到 N−1(从 0 开始编号)
- 测试用例为随机生成
测试用例生成方法
重复以下操作,直到所有城市都连通(只有一个连通分量)为止:
- 随机选择城市编号 u 和 v。
- 如果当前状态下,城市 u 和 v 不能通过一些道路相互到达,则在 u 和 v 之间连一条道路。
- 否则,不做任何操作,重新开始。
得分
假设你总共询问了 L 次,理论得分如下:
- 当 L>20000 时,得分为 0
- L=18000 时,得分为 500
- L=4000 时,得分为 2000
- L=1200 时,得分为 700
- 当 L≤700 时,得分为 1500
共 5 个测试用例,总分为理论值除以 5。
样例说明 1
本例中,N=4。实际用例中不会出现如此规模(因为不满足限制)。以下为一次互动过程示例。
程序输入
程序输出
4
? 1111
4
? 1101
4
? 1001
0
? 1100
1
? 1011
0
! (0,1) (1,2) (1,3)
王国结构如下图。

注意,未必每次询问都有意义。
此外,未必每次询问都能确认盘面,也可以“猜”答案。
由 ChatGPT 5 翻译
输入解题思路,AI测评打分。不知道怎么写?