题目链接

题意:求所给无向图中一共有多少个割顶

用的lrj训练指南P314的模板

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;const int N=109;
struct Edge
{int to,next;Edge(){}Edge(int _to,int _next){to=_to;next=_next;}
}edge[N*N*2];
int head[N];int dfn[N],low[N];
int iscut[N];
int n,tot;
int time_tag;void addedge(int u,int v)
{edge[tot]=Edge(v,head[u]);head[u]=tot++;
}void init()
{memset(dfn,0,sizeof(dfn));memset(iscut,0,sizeof(iscut));memset(head,-1,sizeof(head));tot=time_tag=0;
}void dfs(int u,int pre)
{low[u]=dfn[u]=++time_tag;int child=0;    //子节点数目 for(int i=head[u];~i;i=edge[i].next){int v=edge[i].to;if(!dfn[v])    //    把dfn[]当vis[]使用
        {child++;dfs(v,u);low[u]=min(low[u],low[v]);if(low[v]>=dfn[u])iscut[u]=1;}else if(dfn[v]<dfn[u] && v!=pre)low[u]=min(low[u],dfn[v]);}if(pre<0&&child==1) iscut[u]=0;    //只有一个孩子的根节点
}int main()
{while(scanf("%d",&n)>0&&n){init();int u,v;while(scanf("%d",&u)>0&&u){while(getchar()!='\n'){scanf("%d",&v);addedge(u,v);addedge(v,u);}}dfs(1,-1);int ans=0;for(int i=1;i<=n;i++)if(iscut[i]) ans++;printf("%d\n",ans);}
}

转载于:https://www.cnblogs.com/Just--Do--It/p/7569112.html

UVA 315 :Network (无向图求割顶)相关推荐

  1. UVA - 315 Network(tarjan求割点)

    题目链接:点击查看 题目大意:给出一个由n台电脑互相连接而成的网络系统,其中有一些电脑如果一旦损坏,则会造成整个网络出现缺口,导致某些地方无法互相连通,我们称这种电脑为关键点,题目需要求出有多少个关键 ...

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

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

  3. uva 315 (poj 1144 求割点)

    题意:给你一张无向图,求割点的个数. 思路:输入稍微处理一下接着直接套模版. 1 #include <iostream> 2 #include <cstdio> 3 #incl ...

  4. 无向图求割(找桥)tarjan

    本博客参考了李煜东的<算法竞赛进阶指南>,大家要是觉得这篇文章写的不错请大家支持正版.豆瓣图书 我在之前的博客中讲解了搜索序时间戳,这次我们讲讲追溯值的概念. 追溯值: 设subtree( ...

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

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

  6. [Codeforces 555E]Case of Computer Network(Tarjan求边-双连通分量+树上差分)

    [Codeforces 555E]Case of Computer Network(Tarjan求边-双连通分量+树上差分) 题面 给出一个无向图,以及q条有向路径.问是否存在一种给边定向的方案,使得 ...

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

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

  8. 无向图求起点到终点所有路径

    无向图求起点到终点所有路径 public class Node {public String name = null;public ArrayList<Node> relationNode ...

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

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

最新文章

  1. nefu 628 Garden visiting
  2. 从源码理解ReentrantLock
  3. 【勉强采用】反欺诈四大手段一秒get
  4. mysql 常规命令操作_mysql数据库常规命令操作
  5. 几何分布和超几何分布
  6. 儿童手表怎么删除联系人_双11儿童手表选购指南:全天候24小时定位,做孩子的贴身保镖...
  7. 不用“背”单词,1个方法牢记7000单词:我是如何做到的?
  8. ElasticSearch 6.4.3 启动报错: [Cannot assign requested address: bind]
  9. Oracle数据库关闭的三种方法
  10. 递推DP UVA 473 Raucous Rockers
  11. 语音识别 自然语言处理
  12. UESTC 1634 去年春恨却来时,落花人独立,微雨燕双飞
  13. Java发送电子邮件(使用mail.jar和activation.jar)
  14. unity Inspector 面板扩展
  15. 织梦模板之家:如何安装更换织梦cms模板
  16. py3+requests+urllib+bs4+threading,爬取斗图图片
  17. js 中的this指针
  18. 怎么配置java环境_idea配置java环境
  19. 【QQ空间】免费flash挂件
  20. iPhone升级iOS 16后出现提示“面容ID不可用”怎么办?

热门文章

  1. Linux awk 命令 说明
  2. Linux终端中设置vi编辑命令
  3. python2.7 升级到 python3.6
  4. Linux与shell环境,Linux 环境及 Shell 程序
  5. linux shell读取文件,Linux shell逐行读取文件的方法
  6. 文件和参数一起上传_Spring boot的文件上传
  7. Swift3.0语言教程获取字符
  8. 重庆事业单位计算机职称评定,看效果 | 重庆事业单位改革 职称评定不再“终身制”...
  9. 怎么转换html格式文件怎么打开,html格式怎么转换
  10. html优化网站的方法,利用HTML优化加快网页速度方法介绍