tarjan强连通分量模板(pascal)
友好城市
【问题描述】
小 w 生活在美丽的 Z 国。 Z 国是一个有 n 个城市的大国, 城市之间有 m 条单向公路(连接城市 i、 j 的公路只能从 i 连到 j)。 城市 i、 j 是友好城市当且仅当从城市 i 能到达城市 j 并且从城市 j 能到达城市 i。 如果 k 个城市两两互为友好城市, 那么我们称这 k 个城市是友好城市群, k 为友好城市群的大小。
现在小 w 想知道友好城市群的大小最大为多少, 你能告诉他吗?
【输入格式】
第一行包含两个整数 n 和 m。
接下来 m 行, 每行两个整数 i 和 j, 表示有从城市 i 到城市 j 的一条单向公路。
【输出格式】
共一行一个整数表示答案。
【输入输出样例】
输入:
10 12
3 7
1 2
4 5
7 10
10 8
6 8
2 1
3 8
10 3
6 8
7 3
4 1
输出:
3
【数据范围】
对于 30%的数据, n,m<=100
对于 80%的数据, n<=1000,m<=100000
对于 100%的数据, n,m<=100000
裸的tarjan强连通分量题,只是为了打个tarjan板子。(然而我也不是很懂tarjan算法的原理)
program friend(input,output);
type
etype=record
t,next:longint;
end;
var
e:array[..]of etype;
a,dfn,low,q:array[..]of longint;
inq:array[..]of boolean;
n,m,i,x,y,cnt,top,ans:longint;
procedure add(x,y:longint);
begin
inc(cnt);e[cnt].t:=y;e[cnt].next:=a[x];a[x]:=cnt;
end;
procedure tarjan(k:longint);
var
i:longint;
begin
inc(cnt);dfn[k]:=cnt;low[k]:=cnt;
inc(top);q[top]:=k;inq[k]:=true;
i:=a[k];
while i<> do
begin
if dfn[e[i].t]= then begin tarjan(e[i].t);if low[e[i].t]<low[k] then low[k]:=low[e[i].t]; end
else if inq[e[i].t] and (dfn[e[i].t]<low[k]) then low[k]:=dfn[e[i].t];
i:=e[i].next;
end;
if dfn[k]=low[k] then
begin
i:=;
while q[top]<>k do begin inq[q[top]]:=false;dec(top);inc(i); end;
dec(top);inq[k]:=false;inc(i);
if i>ans then ans:=i;
end;
end;
begin
assign(input,'friend.in');assign(output,'friend.out');reset(input);rewrite(output);
readln(n,m);
fillchar(a,sizeof(a),);cnt:=;
for i:= to m do begin readln(x,y);add(x,y); end;
fillchar(dfn,sizeof(dfn),);
ans:=;
fillchar(inq,sizeof(inq),false);
for i:= to n do if dfn[i]= then begin cnt:=;top:=;tarjan(i); end;
write(ans);
close(input);close(output);
end.
tarjan强连通分量模板(pascal)的更多相关文章
- hdu1269 Tarjan强连通分量 模板(转)
#include<stdio.h> #include<iostream> #include<vector> using namespace std; ; vecto ...
- Tarjan强连通分量模板
最好还是看一看下面这个网址吧 我的这篇博客里的代码更加缜密(毫无错误的神级代码)https://www.cnblogs.com/Tidoblogs/p/11315153.html https://ww ...
- Tarjan 强连通分量 及 双联通分量(求割点,割边)
Tarjan 强连通分量 及 双联通分量(求割点,割边) 众所周知,Tarjan的三大算法分别为 (1) 有向图的强联通分量 (2) 无向图的双联通分量(求割点,桥) ...
- tarjan 强连通分量
一.强连通分量定义 有向图强连通分量在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通(strongly c ...
- 1051: [HAOI2006]受欢迎的牛 (tarjan强连通分量+缩点)
题目大意:CodeVs2822的简单版本 传送门 $Tarjan$强连通分量+缩点,若连通块的个数等于一则输出n:若缩点后图中出度为0的点个数为1,输出对应连通块内的点数:否则输出0: 代码中注释部分 ...
- 求强连通分量模板(tarjan算法)
关于如何求强连通分量的知识请戳 https://www.byvoid.com/blog/scc-tarjan/ void DFS(int x) { dfn[x]=lowlink[x]=++dfn_cl ...
- 算法模板——Tarjan强连通分量
功能:输入一个N个点,M条单向边的有向图,求出此图全部的强连通分量 原理:tarjan算法(百度百科传送门),大致思想是时间戳与最近可追溯点 这个玩意不仅仅是求强连通分量那么简单,而且对于一个有环的有 ...
- tarjan求强连通分量模板
什么是强连通分量? 百度百科 有向图强连通分量:在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通(stro ...
- bzoj1051: [HAOI2006]受欢迎的牛(tarjan强连通分量)
强连通缩下点,出度为0有多个答案为0,否则答案为出度为0的强连通分量中点的个数. 发现一道tarjan模板题,顺便复习一波tarjan #include<iostream> #includ ...
随机推荐
- 20155316 2016-2017-2 《Java程序设计》第9周学习总结
教材学习内容总结 课堂学习内容 不要上帝类,设计小类 soild设计 开放封闭原则:对扩充开放,对修改封闭 OOD方案 DIP 基耦合 教材学习内容 JDBC架构 交易与隔离层级 RowSet .cl ...
- 微信小程序居中代码
html页面: { text-align:center; } wxss页面: { width: 100%; height: 100%; display: flex; justify-content: ...
- 【BZOJ3110】【LG3332】[ZJOI2013]K大数查询
[BZOJ3110][LG3332][ZJOI2013]K大数查询 题面 洛谷 BZOJ 题解 和普通的整体分治差不多 用线段树维护一下每个查询区间内大于每次二分的值\(mid\)的值即可 然后再按套 ...
- CF 1065 E. Side Transmutations
E. Side Transmutations http://codeforces.com/contest/1065/problem/E 题意: 长度为n的字符串,字符集为A,问多少不同的字符串.两个字 ...
- Angular开发者手册重点翻译之指令(一)
创建自定义的指令 这个文章将解释什么需要在自己的angularjs应用中创建自己的指令,以及如何实现它. 什么是指令 在高的层面上讲,指令是DOM元素中的标记(例如一个属性,一个节点名,注释或者CSS ...
- Spring学习(三)-----Spring自动装配Beans
在Spring框架,可以用 auto-wiring 功能会自动装配Bean.要启用它,只需要在 <bean>定义“autowire”属性. <bean id="custom ...
- shell loop
#!/bin/sh date i=0 while [ $i -le 30 ] do echi $i /usr/sbin/r2/np_test_acl -f rule.txt i=$(e ...
- Jmeter接口测试(三)接口测试实践
Jmeter 脚本编写一般分五个步骤: 1. 添加线程组 2. 添加 http 请求 3. 在 http 请求中写入接入 url.路径.请求方式和参数 4. 添加查看结果树 5. 调用接口.查看返回值 ...
- 785. Is Graph Bipartite?
Given an undirected graph, return true if and only if it is bipartite. Recall that a graph is bipart ...
- leetcode-优美的排列
假设有从 1 到 N 的 N 个整数,如果从这 N 个数字中成功构造出一个数组,使得数组的第 i 位 (1 <= i <= N) 满足如下两个条件中的一个,我们就称这个数组为一个优美的排列 ...