机房趣事分享
  • 板块灌水区
  • 楼主Black_ps
  • 当前回复7
  • 已保存回复7
  • 发布时间2024/10/25 17:43
  • 上次更新2024/10/25 19:09:38
查看原帖
机房趣事分享
1121991
Black_ps楼主2024/10/25 17:43

机房一大佬被黄题P3916硬控,求樤。

#include<bits/stdc++.h>
using namespace std;
#define cst const
#define  FOR(i, s, e) for (int i=int(s);i<=int(e);i++)
#define _FOR(i, s, e) for (int i=int(s);i>=int(e);i--)

int n, m;
vector<int> max_v;
vector<vector<int>> adj;
int DFS(cst int &u){
	if (max_v[u]!=-1)return max_v[u];
	max_v[u]=u;
	if (adj[u].empty())return u;
	for (cst auto &v:adj[u])max_v[u]=max(DFS(v), max_v[u]);
	return max_v[u];
}
int main(){
	ios::sync_with_stdio(false), cin.tie(0);
	
	cin>>n>>m, adj.resize(n+1), max_v.resize(n+1);
	fill(max_v.begin(), max_v.end(), -1);
	int u, v;
	FOR (i, 1, m)cin>>u>>v, adj[u].push_back(v);
	FOR (i, 1, n)printf("%d ", DFS(i));
	return 0;
}

2024/10/25 17:43
加载中...