http://poj.org/problem?id=1144

题意:

给出图,求割点数。

思路:

关于无向图的割顶和桥,这篇博客写的挺不错,有不懂的可以去看一下http://blog.csdn.net/stillxjy/article/details/70176689

 #include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
#include<vector>
#include<stack>
#include<queue>
#include<cmath>
#include<map>
using namespace std; const int maxn=+; int n;
vector<int> G[maxn];
int pre[maxn],low[maxn];
int iscut[maxn];
int dfs_clock; int dfs(int u,int fa)
{
int lowu=pre[u]=++dfs_clock;
int child=;
for(int i=;i<G[u].size();i++)
{
int v=G[u][i];
if(!pre[v])
{
child++;
int lowv=dfs(v,u);
lowu=min(lowu,lowv);
if(lowv>=pre[u]) iscut[u]=true;
}
else if(pre[v]<pre[u] && v!=fa)
lowu=min(lowu,pre[v]);
}
if(fa<&&child==) iscut[u]=;
low[u]=lowu;
return lowu;
} int get_int(char s[])
{
int m=;
for(int i=;s[i];i++)
m=m*+s[i]-'';
return m;
} int main()
{
//freopen("D:\\input.txt","r",stdin);
while(~scanf("%d",&n) && n)
{
for(int i=;i<=n;i++) G[i].clear();
memset(pre,,sizeof(pre));
memset(low,,sizeof(low));
memset(iscut,,sizeof(iscut));
dfs_clock=; char s[];
while(scanf("%s",&s))
{
if(s[]=='') break;
int u=get_int(s);
while(scanf("%s",&s))
{
int v=get_int(s);
G[u].push_back(v);
G[v].push_back(u);
if(getchar()=='\n') break;
}
}
int ans=;
dfs(,-);
for(int i=;i<=n;i++)
if(iscut[i]) ans++;
printf("%d\n",ans);
}
return ;
}

POJ 1144 Network(无向图的割顶和桥模板题)的更多相关文章

  1. poj 1144 Network 图的割顶判断模板

    Network Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 8797   Accepted: 4116 Descripti ...

  2. POJ1144 Network 无向图的割顶

    现在打算重新学习图论的一些基础算法,包括像桥,割顶,双连通分量,强连通分量这些基础算法我都打算重敲一次,因为这些量都是可以用tarjan的算法求得的,这次的割顶算是对tarjan的那一类算法的理解的再 ...

  3. POJ 1144 Network(无向图连通分量求割点)

    题目地址:id=1144">POJ 1144 求割点.推断一个点是否是割点有两种推断情况: 假设u为割点,当且仅当满足以下的1条 1.假设u为树根,那么u必须有多于1棵子树 2.假设u ...

  4. poj 1144 Network 无向图求割点

    Network Description A Telephone Line Company (TLC) is establishing a new telephone cable network. Th ...

  5. DFS的运用(二分图判定、无向图的割顶和桥,双连通分量,有向图的强连通分量)

    一.dfs框架: vector<int>G[maxn]; //存图 int vis[maxn]; //节点访问标记 void dfs(int u) { vis[u] = ; PREVISI ...

  6. 图论(无向图的割顶):POJ 1144 Network

    Network   Description A Telephone Line Company (TLC) is establishing a new telephone cable network. ...

  7. poj 1144 Network(无向图求割顶数)

    题目链接:poj 1144 题意就是说有 n(标号为 1 ~ n)个网点连接成的一个网络,critical places 表示删去后使得图不连通的顶点,也就是割顶,求图中割顶的个数. 直接上大白书上的 ...

  8. POJ 1144 Network【割顶】

    学习的这一篇:https://www.byvoid.com/blog/biconnect 割顶:对于无向图G,如果删除某个点u后,连通分量数目增加,称u为图的关节点或者割顶 u为割顶的条件: (1)u ...

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

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

随机推荐

  1. PCI 设备详解二

    上篇文章主要从硬件的角度分析了PCI设备的特性以及各种寄存器,那么本节就结合LInux源代码分析下内核中PCI设备的各种数据结构以及相互之间的联系和工作机制 2016-10-09 注:一下代码参考LI ...

  2. socket编程之obj压缩加密传输

    因为需要序列化这个对象以便在网络上传输.所以POJO必需要实现java.io.Serializable接口.使用了 ObjectInputStream和ObjectOutputStream来接收和发送 ...

  3. webpack无法通过 IP 地址访问 localhost 解决方案

    解决方案: 在config里面的index.js里面的module.exports下面的dev下面的host:'localhost' 改为 host:'0.0.0.0',就可以访问啦!

  4. SVM支持向量机总结

    一.拉格朗日乘子法 一般,在有等式约束时使用拉格朗日乘子法,在有不等约束时使用KKT条件.这里我们先介绍拉格朗日乘子法,后面再介绍KKT条件. 比如考虑下面的组合优化的问题, 这是一个带等式约束的优化 ...

  5. 小tip: 使用SVG寥寥数行实现圆环loading进度效果

    二.正文 设计师设计了一个图片上传圆环loading进度效果.如下截图: 首先,CSS3是可以实现的,以前写过一篇转大饼的文章:“CSS3实现鸡蛋饼饼状图loading等待转转转”.原理跟这个一模一样 ...

  6. 爱用bootstrap系列一:Sublime上写H5及运行

    sublime上使用插件快速生成模板文件 第一,你要先下载package control的插件,这是一款用来管理插件的插件 . 可能会由于你所在的网络通过代理访问而导致安装失败,你可以通过下面的步骤来 ...

  7. 简单认识python的数据类型和语法

    一.Python介绍 1用途 1)WEB开发 最火的Python web框架Django, 支持异步高并发的Tornado框架,短小精悍的flask,bottle, Django官方的标语把Djang ...

  8. PHP闭包(Closure)初探(转载 http://my.oschina.net/melonol/blog/126694?p=2#comments)

    匿名函数 提到闭包就不得不想起匿名函数,也叫闭包函数(closures),貌似PHP闭包实现主要就是靠它.声明一个匿名函数是这样: ? 1 2 3 $func = function() {       ...

  9. http超文本传输协议,get与post区别

    一:什么是http? http:超文本传输协议(HTTP,HyperText Transfer Protocol),是一个客户端和服务器端传输的标准,是应用层通信协议.客户端是中端用户,服务器端是网站 ...

  10. 2017 Multi-University Training Contest - Team 3 Kanade's sum hd6058

    地址:http://acm.split.hdu.edu.cn/showproblem.php?pid=6058 题目: Kanade's sum Time Limit: 4000/2000 MS (J ...