题目描述:
考虑图8.9中的两个网络,假定网络中的数据只在有线路直接连接的2个结点之间以点对点
的方式传输。一个结点出现故障,比如图(a)所示的网络中结点3出现故障,将会阻止其他某些结
点之间的通信。结点1和结点2仍然是连通的,结点4和结点5也是连通的,但这2对结点之间
的通信无法进行了。因此结点3是这个网络的一个SPF结点。
严格的定义:对于一个连通的网络,如果一个结点出现故障,将会阻止至少一对结点之间的
通信,则该结点是SPF结点。
注意,图所示的网络不存在SPF结点。至少两个结点出现故障后,才会使得其他某对
结点之间无法通信。
输入描述:
输入文件包含多个测试数据,每个测试数据描绘了一个网络。每个网络的数据包含多对整数,
每对整数占一行,表示两个直接连接的结点。结点对中两个结点的顺序是无关的,1 2和2 1表示
同一对连接。结点序号范围为1~1000,每个网络的数据中最后一行为一个0,表示该网络数据
的结束。整个输入文件最后一行为一个0,代表输入结束。读入时需要忽略输入文件中的空行。
图 SPF结点
输出描述:
对输入文件中的每个网络,首先输出该网络在输入文件中的序号,然后是该网络中的SPF结
点。具体格式为:第一个网络的序号为"Network #1",第二个网络的序号为"Network #2",等等。
对网络中的每个SPF结点,输出占一行,输出格式如样例输出所示,输出信息标明SPF结点的
序号及该SPF结点出现故障后将整个网络分成几个连通的子网络。如果网络中不存在SPF结点,
则只输出"No SPF nodes"。每两个网络的输出之间,输出一个空行。
// 求无向图连通图的割点 以及 去掉该割点后图分成几个连通块
// Tarjan 算法的应用
#include <iostream>
#include <algorithm>
#include <queue>
#include <math.h>
#include <stdio.h>
#include <string.h>
using namespace std;
#define MOD 1000000007
#define maxn 1010
bool G[maxn][maxn];
int low[maxn],pre[maxn];
int ans[maxn];
int dfst;
int node;
int child;
void init(){
dfst=;
node=;
child=;
memset(G,,sizeof(G));
memset(ans,,sizeof(ans));
memset(pre,,sizeof(pre));
}
int dfs(int u){
int lowu;
lowu=pre[u]=++dfst;
int v;
for(v=;v<=node;v++){
if(G[u][v]){
if(!pre[v]){
int lowv=dfs(v);
lowu=min(lowu,lowv);
if(lowv>=pre[u]){
if(u!=) ans[u]++;
else child++;
}
}
else lowu=min(lowu,pre[v]);
}
}
return lowu;
}
int main()
{
int u,v;
int Case=;
while(scanf("%d",&u),u){
init();
scanf("%d",&v);
node=max(u,v);
G[u][v]=G[v][u]=;
while(scanf("%d",&u),u){
scanf("%d",&v);
node=max(node,v);
node=max(node,u);
G[u][v]=G[v][u]=;
}
dfs();
int found=;
if(child>) ans[]=child-;
if(Case) printf("\n");
printf("Network #%d\n",++Case);
for(int i=;i<=node;i++)
if(ans[i]){
found=;
printf(" SPF node %d leaves %d subnets\n",i,ans[i]+);
}
if(!found)
printf(" No SPF nodes\n");
} return ;
}

zoj 1119 /poj 1523 SPF的更多相关文章

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

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

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

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

  3. POJ 1523 SPF tarjan求割点

                                                                   SPF Time Limit: 1000MS   Memory Limit ...

  4. POJ 1523 SPF(寻找关节点)

                                                                         SPF Time Limit: 1000MS   Memory ...

  5. POJ 1523 SPF(求割点)

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

  6. POJ 1523 SPF (割点,连通分量)

    题意:给出一个网络(不一定连通),求所有的割点,以及割点可以切分出多少个连通分量. 思路:很多种情况. (1)如果给的图已经不是连通图,直接“  No SPF nodes”. (2)求所有割点应该不难 ...

  7. POJ - 1523 SPF

    题目要求割顶集,并且还要求出去掉割顶之后剩下的图连通数目. tarjan算法求出割顶后直接枚举就可以了吧. 一开始想到利用iscut[u]的次数也就是点u被判定为割顶的次数求连通分量数,还有利用与结点 ...

  8. poj 1523 SPF【点双连通求去掉割点后bcc个数】

    SPF Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 7246   Accepted: 3302 Description C ...

  9. POJ 1523 SPF (去掉割点能形成联通块的个数)

    思路:使用tarjan算法求出割点,在枚举去掉每一个割点所能形成的联通块的个数. 注意:后来我看了下别的代码,发现我的枚举割点的方式是比较蠢的方式,我们完全可以在tarjan过程中把答案求出来,引入一 ...

随机推荐

  1. 2013 Asia Regional Changchun

    Hard Code http://acm.hdu.edu.cn/showproblem.php?pid=4813 #include<cstdio> ]; int main(){ int t ...

  2. 国内一些SCM相关论坛站点

    SCMROAD: http://www.scmroad.com/forum.php SCMEYE:http://www.scmeye.com/ SVN管家:http://www.svnclub.com ...

  3. Unity3D脚本中文系列教程(十一)

    http://dong2008hong.blog.163.com/blog/static/4696882720140313058768/ BoxCollider 类,继承自Collider 一个盒状的 ...

  4. Node.js 4.0.0:灵雀云和 OneAPM 的整合测试

    关于 Node.js 4.0.0 稳定版刚刚推出,备受期待,迫不及待地想用它写点东西:此外,要把 Demo 放到 Internet 上得有一个公网 IP ,看到灵雀云挺不错的而且提供域名解析,简直业界 ...

  5. gcd 最大公约数 模版!

    1: #define ll long long ll gcd(ll a,ll b) { ) { return b; }else { return gcd(b % a,a); } } 2: int64 ...

  6. C#画图

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Dr ...

  7. C# 面向对象之概念理解(2)

    委托 如果对象A为了满足某个请求,而寻求另一个对象B的帮助,这被称作是A对B的委托. 对象间的委托,和现实世界中人与人之间的委托一样:如果你“那位”要求你在他外出公干期间帮忙助剪草坪,而你转而雇佣邻居 ...

  8. PHP-Phalcon框架中的数据库操作

    > 本文描述了PHP-Phalcon框架中数据库操作方法,主要讨论Phalcon框架的Model组件中的操作方法.更详细的Model介绍请参考:官方文档 1. 连接数据库 在Phalcon框架中 ...

  9. [hackerrank]John and GCD list

    https://www.hackerrank.com/contests/w8/challenges/john-and-gcd-list 简单题,GCD和LCM. #include <vector ...

  10. 用 React 编写SVG图表

    1.代码 <!DOCTYPE html> <html lang="zh-cn"> <head> <meta charset="U ...