80分,#8#10TLE,BFS+邻接表
查看原帖
80分,#8#10TLE,BFS+邻接表
327288
helpcyg楼主2020/11/21 13:33

代码:

#include<bits/stdc++.h>
using namespace std;
int main(){
	int n,m;
	cin>>n>>m;
	vector<list<int>> v(n + 1, list<int>());
	int a,b;
	for(int i = 0;i < m;++i){
		cin>>a>>b;
		v[a].push_back(b);
	}
	for(int i = 1;i <= n;i++){
		int MAX = i;
		vector<bool> check(n + 1,false);
		check[i] = true;
		queue<int> q;
		q.push(i);
		while(!q.empty()){
			int tmp = q.front();
			MAX = max(MAX,tmp);
			check[tmp] = true;
			q.pop();
			auto it = v[tmp].begin();
			while(it != v[tmp].end()){
				if(check[*it] != true)
					q.push(*it);
				it++;
			} 
		}
		cout<<MAX<<" ";
	}
	return 0;
} 
2020/11/21 13:33
加载中...