1 条题解

  • 0
    @ 2026-5-5 16:48:07
    #include<bits/stdc++.h>
    using namespace std;
    const int N=1e6+5;
    int n,t[N],vis[N];
    void solve() {
    	scanf("%d",&n);
    	for(int i=1,x;i<=n;i++)scanf("%d",&x),t[i]=i-x,vis[i]=0;
    	int x=1,ct=0;do vis[x]=++ct,x=t[x];while(!vis[x]);
    	printf("%d\n",ct-vis[x]+1);
    	for(int i=1;i<=n;i++)if(vis[i]>=vis[x])printf("%d ",i);puts("");
    }
    int main() {
    	int tt;scanf("%d",&tt);
    	while(tt--)solve();
    	return 0;
    }
    
    • 1

    信息

    ID
    6865
    时间
    1000ms
    内存
    256MiB
    难度
    10
    标签
    递交数
    1
    已通过
    1
    上传者