AT_1_ttpc2024_1_a.Don't Detect Cycle
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
有一个图 G,由 N 个顶点组成,顶点编号为 1,2,…,N。起初,图中没有任何边。
接下来,我们将向图中添加 M 条无向边。图中最终的边是预先确定的:第 i 条边 (1≤i≤M) 连接顶点 ui 和 vi。我们称其为边 i。添加后的图确保是简单图。
现在,你要判断是否存在一种排列 (P1,P2,…,PM) 满足以下条件,并如满足条件则给出这样的一个实例。
条件:
- 按照索引顺序为 i=1,2,…,M,依次执行以下操作:
- 如果当前图中包含 uPi 或 vPi 的环存在,则立即停止操作,此时条件不成立。
- 在图中添加边 Pi(即连接顶点 uPi 和 vPi 的无向边)。
共给出 T 个测试用例,请分别解决每个测试用例。
环的定义:图 G 中的环是指满足以下条件的顶点序列 (v0,…,vL−1) 和边序列 (e0,…,eL−1):
- L≥1
- 若 i=j,则 vi=vj 且 ei=ej
- 对于 0≤i≤L−2,边 ei 连接顶点 vi 和 vi+1
- 边 eL−1 连接顶点 vL−1 和 v0
简单图的定义:图 G 被称作简单图,是因为没有自环和多重边。
输入格式
输入通过标准输入给出,格式如下:
T
case1
case2
⋮
caseT
每个 casei(1≤i≤T) 对应一个测试用例,格式如下:
N M
u1 v1
u2 v2
⋮
uM vM
输出格式
对于每个测试用例,如果存在满足条件的排列 (P1,P2,…,PM),则输出这样一个排列,元素之间用空格隔开;如果不存在,则输出 -1。
输入输出样例
输入#1
1 4 4 1 2 2 3 3 4 4 2
输出#1
2 4 1 3
输入#2
4 4 5 1 2 2 3 3 4 3 1 1 4 5 3 1 2 2 3 3 4 9 10 3 5 1 8 5 8 4 9 6 7 7 9 1 2 1 4 2 4 4 6 8 10 1 4 3 8 2 5 3 4 1 5 5 8 2 8 5 7 4 5 3 7
输出#2
-1 3 2 1 4 10 2 8 7 9 6 5 3 1 -1
说明/提示
- 输入中所有的数值均为整数。
- 1≤T≤2000
- 每个测试用例满足:
- 2≤N≤4000
- 1≤M≤4000
- 1≤ui,vi≤N (1≤i≤M)
- 添加所有给定的边后,图为简单图。
- 每份输入文件中,所有测试用例 N,M 总和不超过 4000。
部分评分
若仅回答满足以下条件的数据集,可获得 30 分:
- T≤50
- 每个测试用例满足:
- N≤100
- M≤100
- 每份输入文件中,所有测试用例 N,M 总和不超过 100
示例说明 1
给定图如下图所示:

按顺序 P=(1,2,3,4) 添加边后,图为如下图、符合条件:


因此,1 2 3 4 是一个正确的输出方案。若按顺序 P=(2,3,4,1) 添加边,则在添加边 1 时会形成包含顶点 2 的环,故不满足条件:


另外,像 P=(1,4,3,2) 或 P=(2,4,1,3) 的排列也符合条件。
示例说明 2
如果不存在满足条件的排列 P,则请输出 -1。注意,图不一定连通。
本翻译由 AI 自动生成
输入解题思路,AI测评打分。不知道怎么写?