题目:http://poj.org/problem?id=1523

题目解析:

注意题目输入输入,防止PE,题目就是求割点,并问割点将这个连通图分成了几个子图,算是模版题吧。

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <stack>
#include <string>
#define N 10010
using namespace std;
struct node
{int x,y,next;
} eg[2*N];
int tt,head[N],dfn[N],low[N],ti,f[N];
void init()
{memset(head,-1,sizeof(head));tt=0;ti=1;memset(dfn,0,sizeof(dfn));memset(f,0,sizeof(f));
}
void add(int xx,int yy)
{eg[tt].x=xx;eg[tt].y=yy;eg[tt].next=head[xx];head[xx]=tt++;
}
void tarjan(int u,int fa)
{dfn[u]=low[u]=ti++;int child=0;for(int i=head[u]; i!=-1; i=eg[i].next){int v=eg[i].y;if(v==fa) continue;if(!dfn[v]){child++;tarjan(v,u);low[u]=min(low[u],low[v]);if(low[v]>=dfn[u]&&fa!=-1){f[u]++;}}else //无向图没有横跨边
        {low[u]=min(dfn[v],low[u]);}}if(fa<0&&child>1) f[u]=child-1;
}
int main()
{int xx,yy,u,v,K=0,z;while(scanf("%d",&u)!=EOF&&u){init();scanf("%d",&v);z=max(u,v);add(u,v);add(v,u);while(scanf("%d",&xx)!=EOF&&xx){scanf("%d",&yy);z=max(z,max(xx,yy));add(xx,yy);add(yy,xx);}tarjan(1,-1);printf("Network #%d\n",++K);int sum=0;for(int i=1; i<=z; i++){if(f[i]){sum++;printf("  SPF node %d leaves %d subnets\n",i,f[i]+1);}}if(sum==0)printf("  No SPF nodes\n");printf("\n");}return 0;
}

POJ1523:SPF(无向连通图求割点)相关推荐

  1. POJ1144:Network(无向连通图求割点)

    题目:http://poj.org/problem?id=1144 求割点.判断一个点是否是割点有两种判断情况: 如果u为割点,当且仅当满足下面的1条 1.如果u为树根,那么u必须有多于1棵子树 2. ...

  2. 【图论】求无向连通图的割点

    一篇写的非常好的博客,非常容易理解. http://www.cnblogs.com/en-heng/p/4002658.html 省选前两天,我还在看新的算法,吃枣药丸 转载于:https://www ...

  3. 连通图求割点 最低深索数L(w) 深索数DFN(u)

    定义(割点) 如果在G中去掉v及其关联的边,剩下的图就不再连通,连通无向图G中的顶点v称为割点. 图:左图无割点,右图C.F.G都是割点 定义(深索数) 当采用深度优先遍历算法时,顶点v被访问的序数称 ...

  4. 无向连通图的割点和桥

    割点 #include<bits/stdc++.h> #define N 100005 using namespace std;int n,cnt; int hd[N],nxt[N< ...

  5. 求一个连通图的割点(去掉一个点后图不再连通)

    题目:求一个连通图的割点,割点的定义是,如果除去此节点和与其相关的边,图不再连通,描述算法. 分析: 1. 最简单也是最直接的算法是,删除一个点然后判断连通性,如果删除此点,图不再连通,则此点是割点, ...

  6. Java实现无向连通图中的“割点”问题

    直接上代码,详细请见注释或者下方留言. package cut.point;import java.util.Scanner; import java.util.Stack;/*** "轰炸 ...

  7. (每日一题)P4841 [集训队作业2013]城市规划 (无向连通图计数)(普通生成函数 + 多项式求逆)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 每日一题(莫反 / 多项式 / 母函数 / 群论) 2021.4.14 生成函数 + 多项式求逆 Pr ...

  8. 基于广度优先遍历算法求采用邻接表存储的无向连通图G中从顶点u到v的最短路径

    问题 假设图G采用邻接表存储,设计一个算法,求不带权无向连通图G中从顶点u->v的最短路径(路径上经过的顶点数最少.采用广度优先遍历来实现. 基本思路 我们首先来看一下BFS的过程: 图片摘自慕 ...

  9. Tarjan求割点桥

    概念 1.桥:是存在于无向图中的这样的一条边,如果去掉这一条边,那么整张无向图会分为两部分,这样的一条边称为桥无向连通图中,如果删除某边后,图变成不连通,则称该边为桥. 2.割点:无向连通图中,如果删 ...

最新文章

  1. 图文并茂的生产者消费者应用实例demo
  2. 使用TPC-H对Hive测试
  3. 实现一个队列类,该类用两个栈来实现
  4. 论文笔记:PRIN: Pointwise Rotation-Invariant Networks
  5. 深度学习优化算法总结
  6. vsftpd的不同安装方式及服务控制脚本
  7. 开发海思3520a遇到的问题
  8. java https通讯_Kubernetes - HTTPS在服务之间进行通信
  9. php绘制饼图,php怎么绘制饼图?
  10. 安卓深度探索(卷一)第六章
  11. 【Python】学习笔记2-数据类型:数组、数组循环切片
  12. python上传文件方法总结
  13. 解决添加打印机print spooler打印服务自动关闭故障
  14. 嵌入式单片机STM32原理及应用
  15. 图片放大-jQuery脚本使用异常:仅闪现图片外框
  16. 一文读懂SDRAM内存模组与基本概念
  17. 流量回放repeater的原理分析二:repeater源码分析
  18. Lenovo E570 Windows 10 换Windows7
  19. 100个python算法超详细讲解:存钱
  20. 吉他入门:吉他音阶训练入门教程

热门文章

  1. (转)vtemplate
  2. Tomcat5.5 配置mysql数据库连接池
  3. SEED实验系列:Collabtive系统SQL注入实验
  4. android lua sd卡,记Android层执行Lua脚本的一次实践
  5. matlab均线程序化交易,【策略分享】Matlab量化交易策略源码分享
  6. 加减法叫做什么运算_小学四则运算基础知识,赶快给孩子存下吧!
  7. rpm部署mysql_使用rpm快速安装部署MySQL5.6以及主从设置
  8. 服务拆分-服务远程调用
  9. MyBaits 支持哪些数据源类型?
  10. Spring MVC 使用优化建议-缓存URL