正题


题目大意

求所有割点


解题思路

跑tarjantarjantarjan,然后判断dfnx≤lowydfn_x\leq low_ydfnx​≤lowy​


codecodecode

#include<cstdio>
#include<algorithm>
#define N 20100
#define M 100100
using namespace std;
struct node{int to,next;
}a[M*2];
int n,m,tot,dfn[N],low[N],ls[N],cnt,z,root;
bool mark[N],v[N];
void addl(int x,int y)
{a[++tot].to=y;a[tot].next=ls[x];ls[x]=tot;
}
void tarjan(int x)
{dfn[x]=low[x]=++cnt;int flag=0;for(int i=ls[x];i;i=a[i].next){int y=a[i].to;v[y]=0;if(!dfn[y]){tarjan(y);low[x]=min(low[x],low[y]);if(dfn[x]<=low[y]){flag++;if((x!=root||flag>1)&&!mark[x])mark[x]=1,z++;}}else low[x]=min(low[x],dfn[y]);}
}
int main()
{scanf("%d%d",&n,&m);for(int i=1;i<=m;i++){int x,y;scanf("%d%d",&x,&y);if(x==y) continue;addl(x,y);addl(y,x);}for(int i=1;i<=n;i++)if(!dfn[i]) root=i,tarjan(i);printf("%d\n",z);for(int i=1;i<=n;i++)if(mark[i]) printf("%d ",i);
}

P3388-[模板]割点(割顶)【tarjan】相关推荐

  1. 洛谷 P3388 【模板】割点(割顶) 根+非根+dfn[]+low[]+不一样的Tarjan算法

    洛谷  P3388 [模板]割点(割顶)  根+非根+dfn[]+low[]+不一样的Tarjan算法 Tarjan算法,详见https://blog.csdn.net/mrcrack/article ...

  2. P3388 【模板】割点(割顶) 题解

    博客园同步 原题链接 简要题意: 给定一个图,求所有割点. 割点(割顶)的定义:去掉该点整个图不连通. 前置知识: 强连通分量的 Tarjan \texttt{Tarjan} Tarjan 求法. 不 ...

  3. 20 求图的割点和割边—Tarjan算法

    1 图的割点 问题描述 去掉2号城市,这样剩下的城市之间就不能两两相互到达.例如4号城市不能到5号城市,6号城市也不能到达1号城市等等. 下面将问题抽象化.在一个无向连通图中,如果删除某个顶点后,图不 ...

  4. UVA 315 :Network (无向图求割顶)

    题目链接 题意:求所给无向图中一共有多少个割顶 用的lrj训练指南P314的模板 #include<bits/stdc++.h> using namespace std; typedef ...

  5. 【BZOJ1123】[POI2008]BLO【割顶】

    [题目链接] 题意可见discuss. 用Tarjan求割顶,然后对割顶的所有子树求点对个数(前缀和扫一遍),最后把自身和其他点的答案加上. 没注意边,数组开小了. /* Pigonometry */ ...

  6. 无向图的割顶、桥、BCC和eBCC相关

    几个例题代码待填 割顶:若去掉一个点和与这个点相连的边后,图不再连通,则这个点是割顶. ​ 求法:若节点\(u\)存在一棵子树\(v\)满足\(v\)中所有节点的回边都指向\(u\)及以下的节点(即\ ...

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

    /*表示割点模板很难理解.... 但是呢,可以将整个图用深搜来一步步递归.. dfn[x]<=low[tmp] && x!=mr的点就++: 完毕.... PS:小心第一个节点. ...

  8. 【模板】割点(割顶)

    题目背景 割点 题目描述 给出一个n个点,m条边的无向图,求图的割点. 输入输出格式 输入格式: 第一行输入n,m 下面m行每行输入x,y表示x到y有一条边 输出格式: 第一行输出割点个数 第二行按照 ...

  9. 【模板】 割点(割顶)

    神马网站的链接都可以啊~~~~ 模板题,无程序说明 Code: #include<bits/stdc++.h> #define rep(i,j,k) for(int i=j;i<=k ...

最新文章

  1. 【javascript】深入理解对象
  2. MPEG-7 视觉描述符
  3. php中禁用下拉框,php – Tinymce,禁用numlist下拉列表
  4. 谁会C语言,谁会c语言程序设计
  5. 从 Java 9 开始,Java 就华丽的转身为微服务了…
  6. java基础之 “==”和“ equals”以及instanceof的区别
  7. 逻辑数据库读取bseg
  8. 搜索引擎原理和简单过程【转】
  9. php getfooter,wordpress函数get_footer()用法示例
  10. HTML静态网页---标签
  11. 马里兰大学calce电池循环测试数据集_千次循环,全程1.5V恒压,紫米新一代充电锂电池套装上手体验...
  12. React之回调函数形式的ref
  13. BGP——选路—(8~13条)选路源分析(讲解+配置命令)
  14. Spring MVC url提交参数和获取参数
  15. HAL库中外设驱动的实现(任意外设通用)
  16. 物欲横流的社会中,有没有那么一首诗、一首歌、一句话、一个词....不经意间勾起了你心中无限的回忆,甚至心都跟着微微颤抖了一下
  17. python透视表画图_如何用Python实现透视表?
  18. vscode 报Open a folder or workspace... (File -> Open Folder)解决办法
  19. 中国古典学名著选读网课考试题2021版答案
  20. 浅谈分布式存储之SSD基本原理

热门文章

  1. java 支付宝 退款_Java 支付宝支付,退款,单笔转账到支付宝账户(支付宝支付)
  2. c语言输入n个数按大小输出,输入n个整数并输出,用c语言表达
  3. python 正则匹配 条件太多怎么办_Python条件正则表达式
  4. html如何显示上传进度条,HTML5 Ajax文件上传进度条如何显示
  5. 荣耀智慧屏功能曝光 首发华为鸿蒙OS,荣耀智慧屏功能曝光:首发华为鸿蒙OS,全场景智慧体验...
  6. linux可疑程序,linux可疑程序追踪
  7. 算法-计算逆序对个数
  8. 最大公约数,最小公倍数,质因式分解
  9. 第一个一千行总结-数据结构C复习--知识点总结1--一到四章
  10. c语言枚举类型例题_[开源资讯]Zig 0.6.0 发布,想要挑战 C 语言