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");
	
}
全部评论

相关推荐

07-02 18:09
门头沟学院 Java
苍穹外卖和谷粒商城这俩是不是烂大街了,还能做吗?
想去重庆的鸽子在吐槽:你不如把这俩做完自己搞明白再优化点再来问 何必贩卖焦虑
点赞 评论 收藏
分享
05-19 19:57
蚌埠学院 Python
2237:Gpa70不算高,建议只写排名,个人技能不在多而在精,缩到8条以内。项目留一个含金量高的,减少间距弄到一页,硕士简历也就一页,本科不要写很多
实习,投递多份简历没人回...
点赞 评论 收藏
分享
积极的小学生不要香菜:你才沟通多少,没500不要说难
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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