2017第八届蓝桥杯决赛 发现环(伪*拓扑排序)(蓝桥模板)(输出环)

#include<iostream>
#include<vector>
#include<queue>
using namespace std;
typedef long long LL;
const int N=1e5+10;
vector<int> G[N];
queue<int> q;
bool vis[N];
int du[N];

int main(){
	int n,x,y;
	cin>>n;
	for(int i=0;i<n;i++){
		scanf("%d%d",&x,&y);
		G[x].push_back(y);
		G[y].push_back(x);
		du[x]++;
		du[y]++;
	}
	for(int i=1;i<=n;i++){
		if(du[i]==1){
			q.push(i);
			du[i]--;
			vis[i]=1;
		}
	}
	while(!q.empty()){
		int u=q.front();
		q.pop();
		int l=G[u].size();
		for(int i=0;i<l;i++){
			int te=G[u][i];
			if(vis[te]==1) continue;
			du[te]--;
			if(du[te]==1){
				q.push(te);
				vis[te]=1;
			}
		}
	}
	int k;
	for(k=1;k<=n;k++){
		if(vis[k]==0){
		 printf("%d",k);
		 break;	
		}
		}
		for(++k;k<=n;k++){
			if(vis[k]==0) printf(" %d",k);
		}
		printf("\n");
	
}
全部评论

相关推荐

09-11 10:30
安徽大学 Java
难度不算太高
投递美的集团等公司10个岗位
点赞 评论 收藏
分享
心情:?
卷死只求一个offe...:呵呵,实习才多少钱,拉过来用几个月说没转正名额就行了,现在企业都看钱的,反正这群学生也图实习经历,现成的低价牛马,对企业真友好啊
我的秋招日记
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务