邻接表卡死求助
查看原帖
邻接表卡死求助
478766
zhongboxuan123楼主2022/11/5 16:28
#include<bits/stdc++.h>
using namespace std;
int N,M;//点数和边数
const int maxn=1e5;
struct Node{
	int next,to;	
}E[maxn];
int maxp=-9999;
int Ecnt;
int head[maxn];

void addEdge(int u,int v){
	E[v].next=head[u];
	E[v].to=v;
	head[u]=Ecnt;
	Ecnt++;
	return ;
}
int vis[maxn];
int dfs(int u){
	vis[u]=1;
	for(int i=head[u];i!=-1;i=E[i].next){
		maxp=max(i,maxp);
		vis[i]=1;
		dfs(i);
	}
	return maxp;
}
int main(){
	cin>>N>>M;
	memset(head,-1,sizeof head);
	int u,v;
	for(int i=1;i<=M;i++){
		cin>>u>>v;
		addEdge(u,v);
	}
	for(int i=1;i<=N;i++){
		maxp=i;
		cout<<dfs(i)<<" ";
		memset(vis,0,sizeof(vis));
		maxp=i;
	}
	return 0;
}
2022/11/5 16:28
加载中...