<题目链接>

题目大意:

给你一个连通的无向图,问你其中割点的编号,并且输出删除该割点后,原图会被分成几个连通分量。

解题分析:

Tarjan求割点模板题。

 #include <cstring>
#include <cstdio>
#include <algorithm>
using namespace std; #define rep(i,s,t) for(int i=s;i<=t;i++)
#define clr(i,a) memset(i,a,sizeof(i))
const int N = ;
int head[N], cnt, rt, add_block[N], dfn[N], low[N], fa[N], tot;
struct Edge{
int to, next;
}e[N*N];
inline int read(){
int r=, f=; char c=getchar();
for(; c<''||c>''; c=getchar()) if(c=='-')f=-;
for(; c>=''&&c<=''; c=getchar()) r=r*+c-'';
return f*r;
}
void add(int u, int v) {
e[++cnt].next=head[u]; head[u]=cnt; e[cnt].to=v;
e[++cnt].next=head[v]; head[v]=cnt; e[cnt].to=u;
}
void tarjan(int u, int fa) {
dfn[u]=low[u]=++tot;
int child=;
for(int i=head[u];~i; i=e[i].next) {
int v=e[i].to;
if(!dfn[v]) {
tarjan(v, u);
++child;
if(low[v]>=dfn[u])++add_block[u]; //add_block代表删除u后能够增加的分量个数
low[u]=min(low[v], low[u]);
}
else if(dfn[v]<dfn[u] && fa!=v)low[u]=min(low[u], dfn[v]);
}
if(child== && fa==-) add_block[u]=; //如果
else if(child> && fa==-) add_block[u]=child-;
} int main() {
int u, v, ncase=;
while(true) {
u=read(); if(u==) break;
v=read();
clr(head, -); clr(add_block, ); cnt=tot=; clr(dfn, ); clr(low, );
add(u, v);rt=max(rt, v);
while() {
u=read(); if(u==) break;
v=read();
add(u, v); rt=max(rt, v); //rt用来记录序号最大的节点
}
rep(i, , rt) if(head[i]!=- && !dfn[i]) tarjan(i, -);
int flag=;
printf("Network #%d\n", ++ncase);
rep(i, , rt) if(add_block[i])
printf(" SPF node %d leaves %d subnets\n", i, add_block[i]+), flag=;
if(!flag) puts(" No SPF nodes");
puts("");
}
return ;
}

2018-12-02

POJ 1523 SPF (无向图割点)的更多相关文章

  1. poj 1523 SPF 无向图求割点

    SPF Description Consider the two networks shown below. Assuming that data moves around these network ...

  2. POJ 1523 SPF 求割点的好(板子)题!

    题意: 给个无向图,问有多少个割点,对于每个割点求删除这个点之后会产生多少新的点双联通分量 题还是很果的 怎么求割点请参考tarjan无向图 关于能产生几个新的双联通分量,对于每个节点u来说,我们判断 ...

  3. poj 1523 SPF 求割点以及删除该割点后联通块的数量

    SPF Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7136   Accepted: 3255 Description C ...

  4. zoj 1119 / poj 1523 SPF (典型例题 求割点 Tarjan 算法)

    poj : http://poj.org/problem?id=1523 如果无向图中一个点 u 为割点 则u 或者是具有两个及以上子女的深度优先生成树的根,或者虽然不是一个根,但是它有一个子女 w, ...

  5. poj 1523"SPF"(无向图求割点)

    传送门 题意: 有一张联通网络,求出所有的割点: 对于割点 u ,求将 u 删去后,此图有多少个联通子网络: 对于含有割点的,按升序输出: 题解: DFS求割点入门题,不会的戳这里

  6. poj 1523 SPF(双连通分量割点模板)

    题目链接:http://poj.org/problem?id=1523 题意:给出无向图的若干条边,求割点以及各个删掉其中一个割点后将图分为几块. 题目分析:割点用tarjan算法求出来,对于每个割点 ...

  7. 【POJ】1523 SPF(割点)

    http://poj.org/problem?id=1523 太弱... too weak.. 割点我都还要看书和看题解来写..果然是写不出么.. 割点就那样求,然后分量直接这个节点有多少子树就有子树 ...

  8. POJ 1523 SPF tarjan求割点

                                                                   SPF Time Limit: 1000MS   Memory Limit ...

  9. POJ 1523 SPF(求割点)

    题目链接 题意 : 找出图中所有的割点,然后输出删掉他们之后还剩多少个连通分量. 思路 : v与u邻接,要么v是u的孩子,要么u是v的祖先,(u,v)构成一条回边. //poj1523 #includ ...

随机推荐

  1. Confluence 6 临时目录(安装目录)

    temp 目录是由 Java 运行时进行配置的,同时一些 Confluence 的组件将会写入历史文件或者锁定文件到这个目录中. 临时目录位于安装目录下的 /temp 目录中. 希望修改这个目录的位置 ...

  2. Confluence 6 在初始化配置时候的问题

    提交一个 服务器请求(support request) 然后在你的服务请求中同时提供下面的信息. 下载一个 LDAP 浏览器,你可以通过这个确定你的 LDAP 服务器配置正确.Atlassian 推荐 ...

  3. 【java】转:Windows系统下面多个jdk版本切换

    转自:https://blog.csdn.net/iamcaochong/article/details/56008545 1.系统-高级系统设置-环境变量 里面的Path值最前面的C:\Progra ...

  4. BIgnum类的程序提交

    日期:2018.7.19 星期四 博客期:002 这之前赶着做一个单机游戏的修改器忘了时间,不好意思啊!今天我就把Bignum类的源代码发出来,文件的话,我不知道怎样发,待我好好研究研究这个网站哈!因 ...

  5. Software tips

    1.Microsoft office professional plus 2013秘钥 PD3W7-NVGG7-YKGQX-7CRDG-J2MG7(test success)MTGRC-8BM6H-W ...

  6. CF979E

    非常好的dp,非常考dp的能力 很显然是个计数问题,那么很显然要么是排列组合,要么是递推,这道题很显然递推的面更大一些. 那么我们来设计一下状态: 设状态f[i][j][k][p]表示目前到了第i个点 ...

  7. jmeter 获取数据库表数据作为参数

    jmeter - 获取数据库表数据作为参数 在jmeter中使用数据库表数据首先需要设置数据库连接,然后在创建JDBC取样器 1.创建配置元件 JDBC Connection Configuratio ...

  8. java读取pdf和MS Office文档

    有时候PDF中的文字无法复制,这可能是因为PDF文件加密了,不过使用PDFBox开源软件就可以把它读出来. 还有一个用于创建PDF文件的项目----iText. PDFBox下面有两个子项目:Font ...

  9. 关于js渲染网页时爬取数据的思路和全过程(附源码)

    于js渲染网页时爬取数据的思路 首先可以先去用requests库访问url来测试一下能不能拿到数据,如果能拿到那么就是一个普通的网页,如果出现403类的错误代码可以在requests.get()方法里 ...

  10. Oracle亿级数据查询处理(数据库分表、分区实战)

    大数据量的查询,不仅查询速度非常慢,而且还会导致数据库经常宕机(刚接到这个项目时候,数据库经常宕机o(╯□╰)o). 那么,如何处理上亿级的数据量呢?如何从数据库经常宕机到上亿数据秒查?仅以此篇文章作 ...