1 条题解

  • 0
    @ 2026-5-19 23:42:44
    #include<bits/stdc++.h>
    using namespace std;
    const int N=2e5+5;
    int n,a[N],vis[N],num;
    vector<int>v;
    signed main()
    {
    	int x=1;
    	scanf("%d",&n);
    	for(int i=1;i<=n;i++)scanf("%d",a+i);
    	while(!vis[x])vis[x]=1,x=a[x];
    	while(vis[x]==1)vis[x]++,v.push_back(x),x=a[x],num++;
    	printf("%d\n",num);
    	for(auto x:v)printf("%d ",x);
    	return 0;
    }
    
    
    • 1

    信息

    ID
    8893
    时间
    2000ms
    内存
    1024MiB
    难度
    6
    标签
    递交数
    41
    已通过
    15
    上传者