站外梯
  • 板块灌水区
  • 楼主lucy2012
  • 当前回复14
  • 已保存回复14
  • 发布时间2024/7/19 22:06
  • 上次更新2024/7/20 08:02:11
查看原帖
站外梯
1252442
lucy2012楼主2024/7/19 22:06

顺手一捞

以下正文:

代码(未过样例):

#include<bits/stdc++.h>
using namespace std;
int n,m,a[100010]; 
vector<int> v[100010];
void dfs(int x){
	for(int j=0;j<v[x].size();j++){
		if(a[v[x][j]])
			continue;
		a[v[x][j]]=n;
		dfs(v[x][j]);
	}
	return;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=m;i++){
		int u,vv;
		cin>>u>>vv;
		v[u].push_back(vv);
		v[vv].push_back(u);
	}
	for(int i=n;i>=1;i--){
		if(!a[i])
		    a[i]=i;
		for(int j=0;j<v[i].size();j++){
			if(a[v[i][j]])
			    continue;
			a[v[i][j]]=n;
			dfs(v[i][j]);
		}
	}
	for(int i=1;i<=n;i++){
		cout<<a[i]<<" ";
	}
	return 0;
}
2024/7/19 22:06
加载中...