UVA 315 :Network (无向图求割顶)
题意:求所给无向图中一共有多少个割顶
用的lrj训练指南P314的模板
#include<bits/stdc++.h>
using namespace std;
typedef long long LL; const int N=;
struct Edge
{
int to,next;
Edge(){}
Edge(int _to,int _next)
{
to=_to;
next=_next;
}
}edge[N*N*];
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,,sizeof(dfn));
memset(iscut,,sizeof(iscut));
memset(head,-,sizeof(head));
tot=time_tag=;
} void dfs(int u,int pre)
{
low[u]=dfn[u]=++time_tag;
int child=; //子节点数目
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]=;
}
else if(dfn[v]<dfn[u] && v!=pre)
low[u]=min(low[u],dfn[v]);
}
if(pre<&&child==) iscut[u]=; //只有一个孩子的根节点
} int main()
{
while(scanf("%d",&n)>&&n)
{
init();
int u,v;
while(scanf("%d",&u)>&&u)
{
while(getchar()!='\n')
{
scanf("%d",&v);
addedge(u,v);
addedge(v,u);
}
}
dfs(,-);
int ans=;
for(int i=;i<=n;i++)
if(iscut[i]) ans++;
printf("%d\n",ans);
}
}
UVA 315 :Network (无向图求割顶)的更多相关文章
- POJ1144 Network 无向图的割顶
现在打算重新学习图论的一些基础算法,包括像桥,割顶,双连通分量,强连通分量这些基础算法我都打算重敲一次,因为这些量都是可以用tarjan的算法求得的,这次的割顶算是对tarjan的那一类算法的理解的再 ...
- 图论(无向图的割顶):POJ 1144 Network
Network Description A Telephone Line Company (TLC) is establishing a new telephone cable network. ...
- POJ 1144 Network(无向图的割顶和桥模板题)
http://poj.org/problem?id=1144 题意: 给出图,求割点数. 思路: 关于无向图的割顶和桥,这篇博客写的挺不错,有不懂的可以去看一下http://blog.csdn.net ...
- 无向图求割点 UVA 315 Network
输入数据处理正确其余的就是套强联通的模板了 #include <iostream> #include <cstdlib> #include <cstdio> #in ...
- UVA 315 Network (模板题)(无向图求割点)
<题目链接> 题目大意: 给出一个无向图,求出其中的割点数量. 解题分析: 无向图求割点模板题. 一个顶点u是割点,当且仅当满足 (1) u为树根,且u有多于一个子树. (2) u不为树根 ...
- poj 1144 Network(无向图求割顶数)
题目链接:poj 1144 题意就是说有 n(标号为 1 ~ n)个网点连接成的一个网络,critical places 表示删去后使得图不连通的顶点,也就是割顶,求图中割顶的个数. 直接上大白书上的 ...
- poj 1144 Network 图的割顶判断模板
Network Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 8797 Accepted: 4116 Descripti ...
- uva 315 Network(无向图求割点)
https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...
- UVA 315 315 - Network(求割点个数)
Network A Telephone Line Company (TLC) is establishing a new telephone cable network. They are con ...
随机推荐
- 【HANA系列】SAP HANA日期函数总结
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[HANA系列]SAP HANA日期函数总结 ...
- 【Qt开发】状态栏设置
1.在Qt 里面,状态栏显示的信息有三种类型:临时信息.一般信息和永久信息. 其中,临时信息指临时显示的信息,比如QAction 的提示等,也可以设置自己的 临时信息,比如程序启动之后显示Read ...
- Simplify Path(路径简化)
问题: 来源:https://leetcode.com/problems/simplify-path Given an absolute path for a file (Unix-style), s ...
- 使用Postwoman
postman的脱单产品postwoman 一.安装 1.使用git进行安装: git clone https://github.com/liyasthomas/postwoman cd postwo ...
- 高级BASH
Bash介绍与入门 1,简介 Bash(GNU Bourne-Again Shell)是一个为GNU计划编写的Unix shell,它是许多Linux平台默认使用的shell shell是一个命令解释 ...
- 遍历文件夹下的csv,把数据读进一张表
import pandas as pd import os if __name__ == '__main__': Path = 'c:\checklog' dfs = [] for dir_path, ...
- Redis : 为什么我们做分布式使用 Redis ?(转)
绝大部分写业务的程序员,在实际开发中使用 Redis 的时候,只会 Set Value 和 Get Value 两个操作,对 Redis 整体缺乏一个认知.这里对 Redis 常见问题做一个总结,解决 ...
- ThinkPHP5 支付宝支付扩展库(超级简单,超级好用!)
ThinkPHP5 支付宝支付扩展库, 一个静态方法的调用就可以实现,包括手机网站支付.电脑网站支付.支付查询.退款.退款查询.对账单所有功能,而且是2017年7月20日最新版~我的想法是,调用一个静 ...
- 04-Django-templates
# 模板系统 - 模板:一组相同或者相似的页面,在需要个性化的地方进行留白,需要的时候只是用数据填充就可以使用 - 步骤: 1. 在settings中进行设置:TEMPLATES 2. 在tmeplt ...
- git 中 HEAD detached from 802e836
head指针处于游离状态,需要建立一个分支然后将它合并到master分支,最后删除那个临时分支即可. 详情参见:https://www.jianshu.com/p/fdd3c2d020d7