P3916 图的遍历10分求调
查看原帖
P3916 图的遍历10分求调
1072461
ctyzzyn楼主2025/8/31 20:47
#include<bits/stdc++.h>
using namespace std;
int n,m,h[100005],t[100005],ans[100005],e[100005],k;
void add(int x,int y)
{
	e[k++]=y;
	t[k]=h[x];
	h[x]=k;
}
void dfs(int x,int w)
{
	ans[x]=w;
	for(int i=h[x];i;i=t[i])
	{
		int y=e[i];
		if(ans[y]) continue;
		dfs(y,w);
	}
}
int main()
{
    cin>>n>>m;
    for(int i=1;i<=m;i++)
    {
    	int x,y;
    	cin>>x>>y;
    	add(y,x);
	}
	for(int i=n;i;i--)
		if(!ans[i]) dfs(i,i);
for(int i=1;i<=n;i++)
	cout<<ans[i]<<" ";
    return 0;
}

样例没过 有没有daolao看看QWQ

2025/8/31 20:47
加载中...