P3916 图的遍历
Posted karshey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P3916 图的遍历相关的知识,希望对你有一定的参考价值。
原题:点我
代码:
//反向建图
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;
int ans[N];
vector<int>gra[N];
void dfs(int a,int b)
{
if(ans[a]) return;//已经有数字了
ans[a]=b;//最差都是自己
for(int i=0;i<gra[a].size();i++)
{
dfs(gra[a][i],b);//a-->b,i-->a
}
}
int main()
{
int n,m,a,b;
cin>>n>>m;
for(int i=0;i<m;i++)
{
cin>>a>>b;//a-->b
gra[b].push_back(a);//到b的有a
}
for(int i=n;i>=1;i--) dfs(i,i);
for(int i=1;i<=n;i++)
{
if(i!=1) cout<<" ";
cout<<ans[i];
}
return 0;
}
以上是关于P3916 图的遍历的主要内容,如果未能解决你的问题,请参考以下文章