POJ1523:SPF(无向连通图求割点)
题目: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(无向连通图求割点)相关推荐
- POJ1144:Network(无向连通图求割点)
题目:http://poj.org/problem?id=1144 求割点.判断一个点是否是割点有两种判断情况: 如果u为割点,当且仅当满足下面的1条 1.如果u为树根,那么u必须有多于1棵子树 2. ...
- 【图论】求无向连通图的割点
一篇写的非常好的博客,非常容易理解. http://www.cnblogs.com/en-heng/p/4002658.html 省选前两天,我还在看新的算法,吃枣药丸 转载于:https://www ...
- 连通图求割点 最低深索数L(w) 深索数DFN(u)
定义(割点) 如果在G中去掉v及其关联的边,剩下的图就不再连通,连通无向图G中的顶点v称为割点. 图:左图无割点,右图C.F.G都是割点 定义(深索数) 当采用深度优先遍历算法时,顶点v被访问的序数称 ...
- 无向连通图的割点和桥
割点 #include<bits/stdc++.h> #define N 100005 using namespace std;int n,cnt; int hd[N],nxt[N< ...
- 求一个连通图的割点(去掉一个点后图不再连通)
题目:求一个连通图的割点,割点的定义是,如果除去此节点和与其相关的边,图不再连通,描述算法. 分析: 1. 最简单也是最直接的算法是,删除一个点然后判断连通性,如果删除此点,图不再连通,则此点是割点, ...
- Java实现无向连通图中的“割点”问题
直接上代码,详细请见注释或者下方留言. package cut.point;import java.util.Scanner; import java.util.Stack;/*** "轰炸 ...
- (每日一题)P4841 [集训队作业2013]城市规划 (无向连通图计数)(普通生成函数 + 多项式求逆)
整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 每日一题(莫反 / 多项式 / 母函数 / 群论) 2021.4.14 生成函数 + 多项式求逆 Pr ...
- 基于广度优先遍历算法求采用邻接表存储的无向连通图G中从顶点u到v的最短路径
问题 假设图G采用邻接表存储,设计一个算法,求不带权无向连通图G中从顶点u->v的最短路径(路径上经过的顶点数最少.采用广度优先遍历来实现. 基本思路 我们首先来看一下BFS的过程: 图片摘自慕 ...
- Tarjan求割点桥
概念 1.桥:是存在于无向图中的这样的一条边,如果去掉这一条边,那么整张无向图会分为两部分,这样的一条边称为桥无向连通图中,如果删除某边后,图变成不连通,则称该边为桥. 2.割点:无向连通图中,如果删 ...
最新文章
- 图文并茂的生产者消费者应用实例demo
- 使用TPC-H对Hive测试
- 实现一个队列类,该类用两个栈来实现
- 论文笔记:PRIN: Pointwise Rotation-Invariant Networks
- 深度学习优化算法总结
- vsftpd的不同安装方式及服务控制脚本
- 开发海思3520a遇到的问题
- java https通讯_Kubernetes - HTTPS在服务之间进行通信
- php绘制饼图,php怎么绘制饼图?
- 安卓深度探索(卷一)第六章
- 【Python】学习笔记2-数据类型:数组、数组循环切片
- python上传文件方法总结
- 解决添加打印机print spooler打印服务自动关闭故障
- 嵌入式单片机STM32原理及应用
- 图片放大-jQuery脚本使用异常:仅闪现图片外框
- 一文读懂SDRAM内存模组与基本概念
- 流量回放repeater的原理分析二:repeater源码分析
- Lenovo E570 Windows 10 换Windows7
- 100个python算法超详细讲解:存钱
- 吉他入门:吉他音阶训练入门教程
热门文章
- (转)vtemplate
- Tomcat5.5 配置mysql数据库连接池
- SEED实验系列:Collabtive系统SQL注入实验
- android lua sd卡,记Android层执行Lua脚本的一次实践
- matlab均线程序化交易,【策略分享】Matlab量化交易策略源码分享
- 加减法叫做什么运算_小学四则运算基础知识,赶快给孩子存下吧!
- rpm部署mysql_使用rpm快速安装部署MySQL5.6以及主从设置
- 服务拆分-服务远程调用
- MyBaits 支持哪些数据源类型?
- Spring MVC 使用优化建议-缓存URL