题目链接:https://vjudge.net/problem/UVA-315

题目:求割点。

 #include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std; const int N = ;
int n,tim,tot,root = ;
int head[N],dfn[N],low[N],poi[N];
struct node{
int to;
int nxt;
}e[N*N]; void init(){
for(int i = ; i <= n; ++i){
head[i] = -;
dfn[i] = poi[i] = ;
}
tim = tot = ;
} inline void add(int u,int v){
e[tot].to = v;
e[tot].nxt = head[u];
head[u] = tot++;
} void tarjan(int now,int pre){
dfn[now] = low[now] = ++tim;
int to,son = ;
for(int o = head[now]; ~o; o = e[o].nxt){
to = e[o].to;
if(to == pre) continue; //处理无向图的双向边问题
if(!dfn[to]){
++son;
tarjan(to,now);
low[now] = min(low[now],low[to]);
//割点条件1
if(now != root && dfn[now] <= low[to]) poi[now] = ;
}
else if(low[now] > dfn[to]) low[now] = dfn[to];
}
//割点条件2
if(now == root && son >= ) poi[now] = ;
} int main(){ int u,v;
char ch; while(~scanf("%d",&n) && n){
init(); while(~scanf("%d",&u) && u){
while(~scanf("%d%c",&v,&ch)){
add(u,v); add(v,u);
if(ch == '\n') break;
}
}
tarjan(,);
int ans = ;
for(int i = ; i <= n; ++i)
if(poi[i]) ++ans; printf("%d\n",ans);
} return ;
}

kuangbin专题 专题九 连通图 Network UVA - 315的更多相关文章

  1. [kuangbin带你飞]专题九 连通图B - Network UVA - 315

    判断割点的性质: 如果点y满足 low[y]>=dfn[x] 且不是根节点 或者是根节点,满足上述式子的有两个及其以上. 就是割点 如果是起点,那么至少需要两个子节点满足上述条件,因为它是根节点 ...

  2. B - Network - uva 315(求割点)

    题意:给一个无向连通图,求出割点的数量. 首先输入一个N(多实例,0结束),下面有不超过N行的数,每行的第一个数字代表后面的都和它存在边,0表示行输入的结束(很蛋疼的输入方式). 分析:割点的模板题 ...

  3. Network UVA - 315(求割点)

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

  4. Network UVA - 315 无向图找割点

    题意: 给你一个无向图,你需要找出来其中有几个割点 割点/割项: 1.u不为搜索起点,low[v]>=dfn[u] 2.u为搜索起点,size[ch]>=2 3.一般情况下,不建议在tar ...

  5. [kuangbin带你飞]专题九 连通图

        ID Origin Title   76 / 163 Problem A POJ 1236 Network of Schools   59 / 177 Problem B UVA 315 Ne ...

  6. 「kuangbin带你飞」专题十九 矩阵

    layout: post title: 「kuangbin带你飞」专题十九 矩阵 author: "luowentaoaa" catalog: true tags: mathjax ...

  7. UVA 315 求割点 模板 Tarjan

    D - D Time Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Status Pract ...

  8. kuangbin专题 专题九 连通图 POJ 3694 Network

    题目链接:https://vjudge.net/problem/POJ-3694 题目:给定一个连通图,求桥的个数,每次查询,加入一条边,问加入这条边后还有多少个桥. 思路:tarjan + 并查集 ...

  9. kuangbin专题 专题九 连通图 POJ 1236 Network of Schools

    题目链接:https://vjudge.net/problem/POJ-1236 题目:有向图,有若干个连通图,点之间有单向边边就可以单向传递信息,问: (1)至少需要发送几份信息才能使得每个点都传递 ...

随机推荐

  1. host文件无写权限时,怎么设置

    点击文件属性---安全---选择对应的用户---编辑属性---勾选需要的属性---应用---确定

  2. execute、executeUpdate、executeQuery的区别

    链接:https://blog.csdn.net/u012501054/article/details/80323176 链接:https://blog.csdn.net/CNAHYZ/article ...

  3. Alan Walker MV 合辑01 by defender 歌词

    其实是歌词浏览,配套Alan Walker MV 合辑01 by defender You were the shadow to my life Did you feel us Another sta ...

  4. pick the stone game

    我该如何去触摸这类问题嘞! 取石子游戏 1堆石子有n个,两人轮流取. 先取者第1次可以取任意多个,但不能全部取完. 以后每次取的石子数不能超过上次取子数的2倍. 取完者胜.先取者负输出"Se ...

  5. JS全选按钮练习

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  6. Java 13 新特性

    一.core-libs/java.nio 添加 FileSystems.newFileSystem(Path, Map<String, ?>) 方法 java.nio.file.FileS ...

  7. set的使用

    集合是Python的一种数据类型,集合是一个可变容器.常用于列表的去重. 什么是集合 集合是一个可变容器 集合中的数据对象都是唯一的(不可重复) 集合是无序的存储结构 集合是可迭代对象 集合内的元素是 ...

  8. Python环境搭建(win)——Pycharm(破解+汉化)

    Pycharm搭建方法(破解+汉化): 本文以pycharm2019.2为例 写在前面:有能力的朋友,希望大家支持正版. IDE是集成开发环境 “Integrated Development Envi ...

  9. 使用API进行文件读写——CreateFile,ReadFile,WriteFile等

    看了这个帖子:  http://www.vbgood.com/thread-99249-1-1.html  就写了一个使用API读写文件的简单类,苦力活.  演示代码在附件里.  '********* ...

  10. 一点点学习PS--实战一

    1.安装ps cc 2017,软件包获取:关注公众号软件管家 2.ps常用快捷键 ALT+J 复制图层 CTRL+T 旋转(右键点击可垂直翻转,画倒影常用) CTRL+M  曲线,提亮图片颜色 CTR ...