站外题求助
  • 板块学术版
  • 楼主muslim_tianjin
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/9/29 22:13
  • 上次更新2024/9/30 12:42:10
查看原帖
站外题求助
1459799
muslim_tianjin楼主2024/9/29 22:13

站外题网页 看不清来这里

#include <bits/stdc++.h>
#include <limits.h>
#define SACRIFICING using
#define THE namespace
#define QUEEN std
SACRIFICING THE QUEEN;
typedef long long ll;
const ll inf = INT_MAX*4/5*9;
ll n,a[100009],vis[100009];
vector<vector<int> > sets;
queue<int>q;
int rounds(){
	q.push(1);
	int minn=inf;
	vis[1]=1;
	while(!q.empty()){
		int x=q.front();
		q.pop();
		for(auto it=sets[x].begin();it!=sets[x].end();it++){
			if(vis[x]-vis[*it]+1<minn){
				minn=vis[x]-vis[*it]+1;
			}
			q.push(*it);
			vis[*it]=vis[x]+1;
		}
	}
	return minn;
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d",&a[i]);
		sets[i].push_back(a[i]);
	}
	cout<<rounds();
	return 0;
}

认为是关系的并查集查最小环长度,但RE

2024/9/29 22:13
加载中...