当前位置:首页|资讯

Abc 311 C - Find it!

作者:您是打尖儿还是住店呢发布时间:2024-09-18

问题描述


有一个有向图,有 N 个顶点和 N 条边。


第 i 条边从顶点 i 到顶点 A i 。(约束保证 i!=A i 。)


找到一个有向循环,其中同一顶点不会多次出现。


可以证明,在该问题的约束下存在解决方案。


注释

当满足以下所有条件时,顶点序列 B=(B 1 ,B 2 ,…,B M ) 称为有向循环:


M≥2 从顶点 B i 到顶点 B i+1 的边存在。


(1≤i≤M−1)从顶点 B M 到顶点 B 1 的边存在。


如果 i!=j,则 Bi !=B j 。


约束

所有输入值都是整数。

2≤N≤2×10 5


1≤A i ≤N Ai!=i

输入

输入来自标准输入,格式如下:


N

A 1 A 2 … A N

输出

以以下格式打印解决方案:


M

B 1 B 2… B M

----------

这里面是用数组来记录有向图,一个数循环n次一定会进入那个圆环中。

然后以这个数为start,遍历到下一个也是start的时候停止即可。list中的数据就是环中的数据。



Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1