博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Beta Round #89 (Div. 2) E. Bertown roads(Tarjan、边双连通分量)
阅读量:7099 次
发布时间:2019-06-28

本文共 1477 字,大约阅读时间需要 4 分钟。

题目链接:

思路:首先要判断图是否是边双连通,这个Tarjan算法可以判断,若low[v] > dfn[u],则说明边(u,v)是桥,从而这个图不是边双连通,然后发现在判断的时候已经访问了所有的顶点,顺便加入就可以了。

#include 
#include
#include
#include
#include
#include
#include
#include
#define REP(i, a, b) for (int i = (a); i < (b); ++i)#define FOR(i, a, b) for (int i = (a); i <= (b); ++i)using namespace std;const int MAX_N = (300000 + 100);int N, M, cnt, bcc_count;int low[MAX_N], dfn[MAX_N], vis[MAX_N], mark[MAX_N];stack
S;vector
g[MAX_N];map
, int> mp;vector
> edge;bool Tarjan(int u, int fa){ int tag = 0; low[u] = dfn[u] = ++cnt; vis[u] = 1; S.push(u); REP(i, 0, (int)g[u].size()) { int v = g[u][i]; if (v == fa && !tag) { tag = 1; continue; } if (!dfn[v]) { if (!Tarjan(v, u)) return false; low[u] = min(low[u], low[v]); if (low[v] > dfn[u]) return false; else { pair
PPI = make_pair(u, v); edge.push_back(PPI); mark[mp[PPI]] = 1; } } else if (vis[v]) { low[u] = min(low[u], dfn[v]); pair
PPI = make_pair(u, v); if (!mark[mp[PPI]]) { mark[mp[PPI]] = 1; edge.push_back(PPI); } } } return true;}int main(){ cin >> N >> M; FOR(i, 1, M) { int u, v; cin >> u >> v; g[u].push_back(v); g[v].push_back(u); mp[make_pair(u, v)] = i; mp[make_pair(v, u)] = i; } cnt = bcc_count = 0; memset(vis, 0, sizeof(vis)); memset(mark, 0, sizeof(mark)); memset(dfn, 0, sizeof(dfn)); if (!Tarjan(1, -1)) { puts("0"); return 0; } REP(i, 0, (int)edge.size()) { printf("%d %d\n", edge[i].first, edge[i].second); } return 0;}

转载地址:http://myhql.baihongyu.com/

你可能感兴趣的文章
无聊记记
查看>>
ODI Scenario 场景
查看>>
操作JSON对象
查看>>
iOS 模态视图,视图之间的切换
查看>>
iptables
查看>>
.NET自动识别GB2312与UTF-8编码的文件
查看>>
Linux下apache日志分析与状态查看方法
查看>>
hdu2412(树形dp)
查看>>
js返回函数, 函数名后带多个括号的用法及join()的注意事项
查看>>
【NOIP2007】矩阵取数
查看>>
关于VIM在Win10下的无意义折腾
查看>>
ibatis example Class 使用
查看>>
android的触摸事件(转)
查看>>
springMVC与struts2的区别
查看>>
【DB2数据库在windows平台上的安装】
查看>>
课后作业-阅读任务-阅读笔记-4
查看>>
Yii2数据缓存详解
查看>>
02Scala-函数定义、流程控制、异常处理入门实战
查看>>
jquery,smarty,dedecms的插件思路------dede未实践
查看>>
php pdo错误:SQLSTATE[HY093]: Invalid parameter number: parameter was not defined
查看>>