lightoj1026【tarjan】
题意:
据说就是找桥;
思路:
无敌RE......是cmp写挫了...现在数组开太大了
模板题;
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int mod=1e9+7; const int N=1e5+10; struct node{
int to;
int next;
};
node edge[N*4];
int tol,head[N*4];
int n;
int dfn[N],low[N],tp; struct asd{
int u,v;
};
asd ans[N*4];
int ans_num; bool cmp(asd x,asd y)
{
if(x.u<y.u)
return 1;
if(x.u==y.u)
return x.v<y.v;
return 0;
} void tarjan(int u,int from)
{
dfn[u]=low[u]=tp++;
for(int v=head[u];v!=-1;v=edge[v].next)
{
int to=edge[v].to;
if(!dfn[to])
{
tarjan(to,u);
low[u]=min(low[u],low[to]);
if(dfn[u]<low[to])
{
ans[ans_num].u=u;
ans[ans_num].v=to;
if(u>to)
swap(ans[ans_num].u,ans[ans_num].v);
ans_num++;
}
}
else if(to!=from)
low[u]=min(low[u],dfn[to]);
}
} void add(int u,int v)
{
edge[tol].to=v;
edge[tol].next=head[u];
head[u]=tol++;
} void init()
{
tol=0;
memset(head,-1,sizeof(head));
memset(dfn,0,sizeof(dfn));
memset(low,0,sizeof(low));
ans_num=0;
tp=1;
} void input()
{
int u,v;
int num;
scanf("%d",&n);
init();
for(int i=0;i<n;i++)
{
scanf("%d (%d)",&u,&num);
while(num--)
{
scanf("%d",&v);
add(u,v);
}
}
} void solve()
{
for(int i=0;i<n;i++)
{
if(!dfn[i])
tarjan(i,-1);
}
} int main()
{
int T,cas=1;
scanf("%d",&T);
while(T--)
{
input();
solve();
printf("Case %d:\n",cas++);
printf("%d critical links\n",ans_num);
if(ans_num)
sort(ans,ans+ans_num,cmp);
for(int i=0; i<ans_num; i++)
{
printf("%d - %d\n",ans[i].u,ans[i].v);
}
}
return 0;
}
lightoj1026【tarjan】的更多相关文章
- 【tarjan】BZOJ2140-稳定婚姻
又名NTR的故事 [题目大意] n对夫妻Bi和Gi.若某男Bi与某女Gj曾经交往过,他们有私奔的可能性.不妨设Bi和Gj旧情复燃,进而Bj会联系上了他的初恋情人Gk,以此递推.若在Bi和Gi离婚的前提 ...
- 【Tarjan】洛谷P3379 Tarjan求LCA
题目描述 如题,给定一棵有根多叉树,请求出指定两个点直接最近的公共祖先. 输入输出格式 输入格式: 第一行包含三个正整数N.M.S,分别表示树的结点个数.询问的个数和树根结点的序号. 接下来N-1行每 ...
- ⌈洛谷5058⌋⌈ZJOI2004⌋嗅探器【Tarjan】
题目连接 [洛谷传送门] [LOJ传送门] 题目描述 某军搞信息对抗实战演习,红军成功地侵入了蓝军的内部网络,蓝军共有两个信息中心,红军计划在某台中间服务器上安装一个嗅探器,从而能够侦听到两个信息中心 ...
- P5676 [GZOI2017]小z玩游戏【Tarjan】
小z玩游戏 Tarjan算是板子题吧,但是要稍微做一些修改,建边需要多考虑,建立"虚点". 题目描述 小 z 很无聊. 小 z 要玩游戏. 小 z 有\(N\)个新游戏,第\(i\ ...
- Code[VS] 1332 题解 【Kosaraju】【Tarjan】
Code[VS] 1332 上白泽慧音题解 Tarjan Algorithm Kosaraju Algorithm 题目传送门:http://codevs.cn/problem/1332/ 题目描 ...
- 【Tarjan】+【SPFA】APIO2009 Atm
一.算法介绍 tarjan——求解有向图强连通分量.这个算法在本人的一篇blog中有介绍,这里就不赘述了.贴上介绍tarjan的的blog链接:http://www.cnblogs.com/Maki- ...
- 【tarjan】BZOJ 1051:受欢迎的牛
1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 3134 Solved: 1642[Submit][Sta ...
- POJ2186 Popular Cows 【强连通分量】+【Kosaraju】+【Tarjan】+【Garbow】
Popular Cows Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 23445 Accepted: 9605 Des ...
- LOJ2276 [HAOI2017] 新型城市化 【二分图匹配】【tarjan】
题目分析: 这题出的好! 首先问题肯定是二分图的最大独立集,如果删去某条匹配边之后独立集是否会变大. 跑出最大流之后流满的边就是匹配边. 如果一个匹配边的两个端点在一个强连通分量里,那这条边删掉之后我 ...
随机推荐
- 左儿子右兄弟Trie UVA 11732 strcmp() Anyone?
题目地址: option=com_onlinejudge&Itemid=8&category=117&page=show_problem&problem=2832&qu ...
- PostgreSQL Client Authentication Configuration File
PostgreSQL: Documentation: 10: 16.4. Installation Procedure https://www.postgresql.org/docs/10/stati ...
- IP address could not be resolved: Name or service not known
[root@test ~]# /usr/local/mysql/bin/mysqld2018-08-05T07:00:33.647509Z 0 [Warning] [MY-011070] [Serve ...
- ubuntu下配置rails环境遇到的错误
1.Could not find gem 'sqlite3 (>= 0)' in any of the gem sources listed in your Gemfile 解决:sudo ge ...
- asp概述
asp的理解 今天才知道,Asp原来不是一种语言,也不是一种开发工具,而是一种技术框架, 主要功能是把脚本语言,HTML,组件和Web数据库访问功能有机的结合在一起, 形成一个能在服务器端运行的应用程 ...
- 【LeetCode】Binary Tree Inorder Traversal
Binary Tree Inorder Traversal Total Accepted: 16406 Total Submissions: 47212My Submissions Given a b ...
- 区分:WebElement, MobileElement, AndroidElement, and iosElement
区分:WebElement, MobileElement, AndroidElement, and iosElement 原文地址:https://discuss.appium.io/t/differ ...
- Struts2页面遍历
<s:iterator />可以遍历 数据栈里面的任何数组,集合等等 在使用这个标签的时候有三个属性值得我们关注 1. value属性:可选的属性,value属性是指一个被迭代的 ...
- 常用git命令和工具
0. ln -s src_dir //一个参数即可在当前目录下生成一个软链接 1.git command --clone/push a branch git clone <url ...
- ps 图层混合模式