分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

Network POJ - 3694 (连通图标求桥)

发布时间:2023-09-06 02:03责任编辑:傅花花关键词:暂无标签
#include <iostream>#include <cstdio>#include <cstring>#include <queue>#include <vector>#include <stack>#include <algorithm>#include <cmath>#define mem(a, b) memset(a, b, sizeof(a))using namespace std;const int maxn = 10010, INF = 0x7fffffff;int pre[maxn], low[maxn], iscut[maxn];int dfs_clock, n, cnt;vector<int> G[maxn];struct edge{ ???int u, v;}Edge[maxn];int cmp(edge a, edge b){ ???if(a.u == b.u) return a.v < b.v; ???return a.u < b.u;}int dfs(int u, int fa){ ???int lowu = pre[u] = ++dfs_clock; ???int child = 0; ???for(int i=0; i<G[u].size(); i++) ???{ ???????int v = G[u][i]; ???????if(!pre[v]) ???????{ ???????????child++; ???????????int lowv = dfs(v, u); ???????????lowu = min(lowu, lowv); ???????????if(lowv > pre[u]) ???????????{ ???????????????iscut[u] = 1; ???????????????Edge[cnt].u = u, Edge[cnt].v = v; ???????????????if(Edge[cnt].u > Edge[cnt].v) swap(Edge[cnt].u, Edge[cnt].v); ???????????????cnt++; ???????????} ???????} ???????else if(pre[v] < pre[u] && v != fa) ???????????lowu = min(lowu, pre[v]); ???} ???if(fa < 0 && child == 1) iscut[u] = 0; ???low[u] = lowu; ???return lowu;}void init(){ ???cnt = 0; ???dfs_clock = 0; ???mem(pre, 0); ???mem(low, 0); ???mem(iscut, 0); ???for(int i=0; i<=n; i++) G[i].clear();}int main(){ ???while(cin>> n) ???{ ???????init(); ???????for(int i=0; i<n; i++) ???????{ ???????????int u, d, v; ???????????scanf("%d (%d)", &u, &d); ???????????for(int i=0; i<d; i++) ???????????{ ???????????????cin>> v; ???????????????G[u].push_back(v); ???????????????G[v].push_back(u); ???????????} ???????} ???????for(int i=0; i<n; i++) ???????????if(!pre[i]) ???????????????dfs(i, -1); ???????sort(Edge, Edge+cnt, cmp); ???????printf("%d critical links\n",cnt); ???????for(int i=0; i<cnt; i++) ???????????cout<< Edge[i].u << " - " << Edge[i].v <<endl; ???????cout<<endl; ???} ???return 0;}

Network POJ - 3694 (连通图标求桥)

原文地址:https://www.cnblogs.com/WTSRUVF/p/9302112.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved