CF1053E.Euler tour
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Euler 是一只可爱的小松鼠。秋天来临时,他会为冬天储备一些粮食。有趣的是,Euler 喜欢以一种特殊的方式收集橡果。一棵树可以被描述为 n 个橡果,通过 n−1 根树枝连接,使得任意一对橡果之间恰好有一条路径。我们将橡果从 1 到 n 编号。
松鼠会选择一个橡果(不一定是编号为 1 的)作为起点,并以一种称为“欧拉游走”(见提示)的方式访问橡果,每当他最后一次访问某个橡果时,就会收集它。
今天早上,Kate 观察了 Euler。她拿出一张纸,记录下了 Euler 路径上依次经过的橡果编号。不幸的是,在回家的路上下起了雨,部分数字变得无法辨认。现在女孩很难过,因为她需要向老师展示自己的观察结果。
“也许如果我能猜出缺失的数字,就能完成作业!”她这样想着。请你帮助她,恢复出任意一个可能的树的欧拉游走,或者告诉她她一定是记错了。
输入格式
第一行包含一个整数 n(1≤n≤5×105),表示树中橡果的数量。
第二行包含 2n−1 个整数 a1,a2,…,a2n−1(0≤ai≤n),表示 Kate 记录下的树的欧拉游走。0 表示该位置的数字无法辨认,需要你来猜测。
输出格式
如果不存在满足条件的欧拉游走,第一行输出 "no"。
否则,第一行输出 "yes",第二行输出一个满足条件的欧拉游走。
只要输出的欧拉游走合法即可,因为老师并不知道最初的树是什么样子的。
输入输出样例
输入#1
2 1 0 0
输出#1
yes 1 2 1
输入#2
4 1 0 3 2 0 0 0
输出#2
yes 1 4 3 2 3 4 1
输入#3
5 0 1 2 3 4 1 0 0 0
输出#3
no
说明/提示
一棵有 n 个橡果的树的欧拉游走是一个长度为 2n−1 的橡果编号序列,满足每个橡果至少出现一次,首尾橡果编号相同,且任意相邻的两个橡果编号在树中直接通过一根树枝连接。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?