1 条题解
-
1
世界上最好的题解😄
#include<bits/stdc++.h> using namespace std; int n,m; vector<int> g[100005]; void input(){ cin>>n>>m; int x,y; for(int i=0;i<m;++i){ cin>>x>>y; g[y].push_back(x); } } int res[100005]; void dfs(int k){ for(unsigned int i=0;i<g[k].size();++i){ int &t=g[k][i]; if(!res[t]){ res[t]=res[k]; dfs(t); } } } int main(){ input(); for(int i=n;i>=1;--i){ if(!res[i]){ res[i]=i; dfs(i); } } for(int i=1;i<=n;++i)cout<<res[i]<<" "; return 0; }
看完别忘了点赞哟👍
- 1
信息
- ID
- 2849
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 3
- 标签
- 递交数
- 19
- 已通过
- 10
- 上传者