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】
题目分析: 这题出的好! 首先问题肯定是二分图的最大独立集,如果删去某条匹配边之后独立集是否会变大. 跑出最大流之后流满的边就是匹配边. 如果一个匹配边的两个端点在一个强连通分量里,那这条边删掉之后我 ...
随机推荐
- Python中十六进制和字符串的转换(转载)
调用Python内置int()函数把该字串转为数字.以下为在Python解释器编程环境下的操作示范: 把十六进制的字串转为十进制数字:Python代码>>> print int('f ...
- 数据挖掘项目之---通过对web日志的挖掘来实现内容推荐系统
先说一说问题,不知道大家有没有这样的经验,反正我是经常碰到. 举例1,某些网站每隔几天就发邮件给我,每次发的邮件内容都是一些我根本不感兴趣的东西,我不甚其扰,对其深恶痛绝. 举例2,添 ...
- 安装mysql时,提示This application requires .NET framework 4.0问题
Question:双击MySQL的安装文件, 弹框提示, Answer:安装微软的 .NET Framework 4或更新的版本,下载地址:https://www.microsoft.com/zh ...
- dialog更新数据
将数据显示在最上面
- SIP学习笔记 -- RFC 3261
1.SDP (rfc 4566) 1)用于交换参数 2)内容分三部分Session description, Time description and Media description ...
- 人生苦短之Python类的一二三
在Python中,类也是以class开头定义的.我们定义一个动物类,它有名字和年龄,在java变量有实例变量和局部变量,方法内的变量是局部变量,类里面的变量是实例变量.那么在Python中的类及其属性 ...
- codeforces 463B Caisa and Pylons 解题报告
题目链接:http://codeforces.com/problemset/problem/463/B 题目意思:Caisa 站在 0 pylon 并且只有 0 energy,他需要依次跳过1 pyl ...
- 烂笔头——JAVA/JSP
学艺不精,一些小零头放这里备忘 Object[] obj = (Object[])list.get(i);//取list的某个项目 jsp中出现out.println( )和System.out.pr ...
- Autoware docker 环境安装
环境: ubuntu 16.04 GPU:GeForce 1070 nvidia 驱动型号:nvidia_driver_390.67 安装参考网址: https://github.com/C ...
- bzoj 4589 Hard Nim —— FWT
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4589 先手必败,是一开始所有石子的异或和为0: 生成函数 (xpri[1] + xpri[2 ...