UVA315 Network 连通图割点
题目大意:有向图求割点
题目思路:
一个点u为割点时当且仅当满足两个两个条件之一:
1.该点为根节点且至少有两个子节点
2.u不为树根,且满足存在(u,v)为树枝边(或称 父子边,即u为v在搜索树中的父亲),使得 dfn(u)<=low(v)。
然后注意读入,很容易RE
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<vector>
#include<iostream>
#include<algorithm>
#define MAXSIZE 1005
#define LL long long using namespace std; int vis[MAXSIZE],Map[MAXSIZE][MAXSIZE],low[MAXSIZE],dfn[MAXSIZE],pre[MAXSIZE],Time,n,ans,son; void Tarjan(int u,int fa)
{
pre[u]=fa;
low[u]=dfn[u]=++Time;
for(int i=; i<=n; i++)
{
if(!Map[u][i] || u==i) continue;
if(!dfn[i])
{
Tarjan(i,u);
low[u]=min(low[u],low[i]);
}
else if(fa!=i)
{
low[u]=min(low[u],dfn[i]);
}
}
} void Init()
{
memset(Map,,sizeof(Map));
memset(low,,sizeof(low));
memset(dfn,,sizeof(dfn));
memset(vis,,sizeof(vis));
memset(pre,,sizeof(pre));
Time=;
ans=;
son=;
} int main()
{
int a,b;
char ch,op;
while(scanf("%d",&n),n)
{
Init();
getchar();
while(scanf("%d",&a),a)
{
while(scanf("%d%c",&b,&op))
{
Map[a][b]=Map[b][a]=;
if(op=='\n') break;
}
}
Tarjan(,);
for(int i=;i<=n;i++)
{
if(pre[i]==)
son++;
else if(dfn[pre[i]] <= low[i])
vis[pre[i]]=;
}
if(son > ) ans++;
for(int i=;i<=n;i++)
if(vis[i]) ans++;
printf("%d\n",ans);
}
return ;
}
UVA315 Network 连通图割点的更多相关文章
- uva-315.network(连通图的割点)
本题大意:求一个无向图额割点的个数. 本题思路:建图之后打一遍模板. /**************************************************************** ...
- TZOJ 2999 Network(连通图割点数量)
描述 A Telephone Line Company (TLC) is establishing a new telephone cable network. They are connecting ...
- UVA315 Network —— 割点
题目链接:https://vjudge.net/problem/UVA-315 A Telephone Line Company (TLC) is establishing a new telepho ...
- [UVA315]Network(tarjan, 求割点)
题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...
- TZOJ 2018 SPF(连通图割点和分成的连通块)
描述 Consider the two networks shown below. Assuming that data moves around these networks only betwee ...
- uva315(求割点数目)
传送门:Network 题意:给出一张无向图,求割点的个数. 分析:模板裸题,直接上模板. #include <cstdio> #include <cstring> #incl ...
- POJ1144 Network(割点)题解
Description A Telephone Line Company (TLC) is establishing a new telephone cable network. They are c ...
- POJ 1144 Network(割点)
Description A Telephone Line Company (TLC) is establishing a new telephone cable network. They are c ...
- POJ1144 Network 无向图割点
题目大意:求以无向图割点. 定义:在一个连通图中,如果把点v去掉,该连通图便分成了几个部分,则v是该连通图的割点. 求法:如果v是割点,如果u不是根节点,则u后接的边中存在割边(u,v),或者v-&g ...
随机推荐
- java练习:质数,匿名内部类创建接口,抽象类派生子类,画圆,字节截取字符串,数字变钱币,五子棋,梭哈
java学习-质数的孤独 正在看质数的孤独,,,于是写了一个练习代码,输出1-100之间的质数 代码比较烂.待完善吧. 这里用到了continue和break,continue指结束当前轮次循环,跳入 ...
- 牛客网 2018年东北农业大学春季校赛 L题 wyh的天鹅
链接:https://www.nowcoder.com/acm/contest/93/L来源:牛客网 时间限制:C/C++ 3秒,其他语言6秒空间限制:C/C++ 262144K,其他语言524288 ...
- (贪心)nyoj91-阶乘之和
91-阶乘之和 内存限制:64MB 时间限制:3000ms 特判: No 通过数:71 提交数:191 难度:3 题目描述: 给你一个非负数整数n,判断n是不是一些数(这些数不允许重复使用,且为正数) ...
- Hibernate的入门(概念1):
什么是持久化类? 持久化类的编写规则? 区分自然主键和代理主键? 主键生成策略?
- Centos 6.8编译安装LNMP环境
Centos 6.8编译安装LNMP环境 参考资料: http://www.jb51.net/article/107429.htm https://phperzh.com/articles/1360 ...
- python 函数基础及装饰器
没有参数的函数及return操作 def test1(): print ("welcome") def test2(): print ("welcomt test2&qu ...
- SQL语法基础之ALTER语句
SQL语法基础之ALTER语句 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.查看ALTER的帮助信息 mysql> ? ALTER Many help items fo ...
- C++回顾day02---<引用>---待补充
一:引用概念---引用就是为一个变量起一个别名 每个变量都是指向一块内存空间的标识,引用就是重新设置一个标识,但是这个标识还是指向同一个内存空间 和指针类似(其实引用本质就是使用了一个常指针 cons ...
- Hadoop记录-hdfs转载
Hadoop 存档 每个文件均按块存储,每个块的元数据存储在namenode的内存中,因此hadoop存储小文件会非常低效.因为大量的小文件会耗尽namenode中的大部分内存.但注意,存储小文件所需 ...
- 【leetcode70】【动态规划】 爬楼梯
(1 pass 一维动态规划) 爬楼梯(easy) 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 注意:给定 n 是一个正整数 ...