洛谷P3388

注意:记得tarjan的打法

   注意割点的判断条件:子节点个数>2并且为根节点

               当它不为根节点时并且low[to]>dfn[u]

   判断时是在子节点未被记录的时候

 #include<bits/stdc++.h>
using namespace std;
inline int sc()
{ int x=,f=;char ch=getchar();
while(!isdigit(ch)){ if(ch==)f=-;ch=getchar();}
while(isdigit(ch)) { x=x*+ch-;ch=getchar();}
return x*f;
}
#define man 100010
int n,m;
/*edge*/
int head[man<<],num=;
struct edge
{ int next,to;}e[man<<];
inline void add(int from,int to)
{ e[++num].next=head[from];
e[num].to=to;
head[from]=num;
} int dep=,dfn[man],low[man],cnt=;
bool vis[man],sta[man];
inline void tarjan(int u,int fa)
{ int son=;
low[u]=dfn[u]=++dep;
for(int i=head[u];i;i=e[i].next)
{ int to=e[i].to;
if(!dfn[to])
{ son++;
tarjan(to,u);
low[u]=min(low[u],low[to]);
if((fa==-&&son>=)||(fa!=-&low[to]>=dfn[u]))
{ if(sta[u]==) cnt++;sta[u]=;}
}
else if(to!=fa)
low[u]=min(low[u],dfn[to]);
}
}
int main()
{ n=sc();m=sc();
for(int i=,x,y;i<=m;i++)
{ x=sc(),y=sc();
add(x,y);add(y,x);
}
for(int i=;i<=n;i++)
if(!dfn[i]) tarjan(i,-);
cout<<cnt<<endl;
for(int i=;i<=n;i++)
if(sta[i]) cout<<i<<" ";
cout<<endl;
return ;
}

[模板]割点(tarjan)的更多相关文章

  1. 洛谷3388 【模板】割点 tarjan算法

    题目描述 给出一个n个点,m条边的无向图,求图的割点. 关于割点 在无向连通图中,如果将其中一个点以及所有连接该点的边去掉,图就不再连通,那么这个点就叫做割点(cut vertex / articul ...

  2. 连通分量模板:tarjan: 求割点 &amp;&amp; 桥 &amp;&amp; 缩点 &amp;&amp; 强连通分量 &amp;&amp; 双连通分量 &amp;&amp; LCA(近期公共祖先)

    PS:摘自一不知名的来自大神. 1.割点:若删掉某点后.原连通图分裂为多个子图.则称该点为割点. 2.割点集合:在一个无向连通图中,假设有一个顶点集合,删除这个顶点集合,以及这个集合中全部顶点相关联的 ...

  3. 图论--割点--Tarjan模板

    #include <iostream> #include <algorithm> #include <cstdio> #include <cstring> ...

  4. 【洛谷P3388】(模板)割点

    [模板]割点 割点集合:一个顶点集合V,删除该集合的所有定点以及与这些顶点相连的边后,原图不连通,就称集合V为割点集合 点连通度:最小割点集合中的顶点数 边连通度:最小割边集合中的边数 割点:割点集合 ...

  5. poj 1523 割点 tarjan

    Description Consider the two networks shown below. Assuming that data moves around these networks on ...

  6. 割点 —— Tarjan 算法

    由于对于这一块掌握的十分不好,所以在昨天做题的过程中一直困扰着我,好不容易搞懂了,写个小总结吧 qwq~ 割点 概念 在无向连通图中,如果将其中一个点以及所有连接该点的边去掉,图就不再连通,那么这个点 ...

  7. poj1523 求割点 tarjan

    SPF Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7678   Accepted: 3489 Description C ...

  8. POJ 1470 Closest Common Ancestors (模板题)(Tarjan离线)【LCA】

    <题目链接> 题目大意:给你一棵树,然后进行q次询问,然后要你统计这q次询问中指定的两个节点最近公共祖先出现的次数. 解题分析:LCA模板题,下面用的是离线Tarjan来解决.并且为了代码 ...

  9. POJ 1523 SPF 割点 Tarjan

    SPF Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 9317   Accepted: 4218 Description C ...

随机推荐

  1. curl post数据

    调用方式: $header = self::getHeader(); $data = self::postUrl($url, $header); /** * 组合Header * @return ty ...

  2. Centos6-7安装Python3.5

    可以看到我们现在是2.7.5的,现在我安装一个3.5版本的 安装python3之前首先安装ssl开发库,否则会造成python3的ssl库都无法使用!!! yum install openssl op ...

  3. .NET System.Web.HttpContext.Current.Request报索引超出数组界限。

    移动端使用Dio发送 FormData, 请求类型 multipart/form-data, FormData内可以一个或多个包含文件时. 请求接口时获取上传的fomdata数据使用 System.W ...

  4. centos7系统安装python3,pip3,django

    首先去python官网下载python3的源码包,网址:https://www.python.org/ 或者直接wget下载 wget https://www.python.org/ftp/pytho ...

  5. 文档主题生成模型(LDA)

    一.问题描述 1.1文本建模相关 统计文本建模的目的其实很简单:就是估算一组参数,这组参数使得整个语料库出现的概率最大.这是很简单的极大似然的思想了,就是认为观测到的样本的概率是最大的.建模的目标也是 ...

  6. 无线加密的多种方法及其区别(WEP WPA TKIP EAP)

    无线加密的多种方法及其区别(WEP WPA TKIP EAP) 无线网络的安全性由认证和加密来保证. 认证允许只有被许可的用户才能连接到无线网络: 加密的目的是提供数据的保密性和完整性(数据在传输过程 ...

  7. 华为交换机S5700 vty 0 4

    最佳答案   vty 0 4 代表有5条VTY线路 由0到4 这个要看设备的版本有的设备会有更多条VTY线路比如一些企业版的设备 显示用户界面 进入TELNET 设置模式 user-interface ...

  8. 0CTF题中的神奇宝贝WP

    前言: 今天被尘少拉去做题 然后做到一个脑洞打开的题..... 神奇宝贝!?!? 正文: 一开始来到这=-= 弱密码猜测:admin admin 验证码用calc去算 然后成功进入 第一次去做神奇宝贝 ...

  9. C# List对于自定义对象的比较判断

    实际开发中,我们经常会把同类型的一系列对象封装到List集合中,当我们有需要在封装对象到List集合中时,排除重复的对象,这时直接使用: if(!List.Contains(obj)) { List. ...

  10. Keepalived 角色选举

    简介: 1.在 Keepalived 集群中,其实并没有严格意思上的主.备节点,虽然可以在 keepalived.conf 中定义 state 选项为 MASTER 状态,但是这并不意味着此节点就一直 ...