POJ 1523 SPF(无向图求割点,去割点形成子图数)
来源:互联网 发布:淘宝充值未到账怎么办 编辑:程序博客网 时间:2024/05/17 08:07
题目链接:http://poj.org/problem?id=1523
#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>using namespace std;const int N = 1010;int edge[N][N];int n, son;int subnet[N], dfn[N], low[N], tmpdfn;bool vis[N];void init(){ tmpdfn = 1; son = 0; memset(dfn,0,sizeof(dfn)); memset(low,0,sizeof(low)); memset(vis,0,sizeof(vis)); memset(subnet,0,sizeof(subnet)); low[1] = dfn[1] = 1; vis[1] = true;}void dfs(int u){ for(int v = 1; v <= n; v++) { if( edge[u][v] ) { if( !vis[v] ) { vis[v] = true; dfn[v] = low[v] = ++tmpdfn; dfs( v ); low[u] = min( low[u], low[v] ); if( low[v] >= dfn[u] ) { if( u != 1 ) subnet[u]++; else son++; } } else low[u] = min( low[u], dfn[v] ); } }}int main(){ int Case = 0; while( 1 ) { int u, v; n = 0; scanf("%d", &u); if( u == 0 ) break; memset(edge,0,sizeof(edge)); scanf("%d",&v); if( u > n ) n = u; if( v > n ) n = v; edge[u][v] = edge[v][u] = 1; while(1) { scanf("%d",&u); if( u == 0 ) break; scanf("%d",&v); if(u > n) n = u; if(v > n) n = v; edge[u][v] = edge[v][u] = 1; } if( Case ) puts(""); printf("Network #%d\n", ++Case); init(); dfs(1); if( son > 1 ) subnet[1] = son-1; bool find = false; for(int i = 1; i <= n; i++) { if( subnet[i] ) { find = true; printf(" SPF node %d leaves %d subnets\n", i, subnet[i]+1); } } if( !find ) printf(" No SPF nodes\n"); } return 0;}
0 0
- POJ 1523 SPF(无向图求割点,去割点形成子图数)
- POJ 1523 SPF (无向图求割点)
- POJ 1523 SPF 无向图求割点
- poj 1523 SPF 无向图求割点
- POJ 1523 SPF 无向图求割点和块
- POJ 1523 SPF (无向图求割点 tarjan算法)
- poj 1523 SPF (无向图 求割项)
- POJ 1523 SPF(无向图连通分量求割点)
- poj 1523 SPF(无向图求关节点)
- poj 1523 SPF 无向图关节点
- POJ 1523 SPF Tarjan求无向图割点
- POJ1523 SPF (无向图求割点)
- poj 1523 SPF(无向图点的连通性问题)
- POJ 1523 无向图求割点
- POJ 1523 SPF(求割点)
- poj 1523 SPF (tarjan)
- POJ 1523 SPF(Tarjan)
- POJ 1523--SPF【无向图的所有割点 && 删去该点后bcc的数目】
- DatabaseMetaData类
- QWidget无边框无标题栏窗体 可拖动可拉伸
- HDU3694 Fermat Point in Quadrangle 多边形费马点结论
- 一起学Google Daydream VR开发,快速入门开发基础教程二:Android端开发环境配置二
- 链表(10月3号学习总结)
- POJ 1523 SPF(无向图求割点,去割点形成子图数)
- 简单的多线程数据传输
- usaco 1.1 PROB Greedy Gift Givers 解题报告
- Java-获取网络资源大小
- 基于RollPagerView实现图片轮播功能
- Redis 一:Linux下 安装Redis并配置服务
- Java + 对象的聚合例子(计算三角形、圆形的面积)
- 用递归函数实现字符串反向输出
- PHP Webservice简单实例