zoj 1119 /poj 1523 SPF
题目描述:
考虑图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的更多相关文章
- zoj 1119 / poj 1523 SPF (典型例题 求割点 Tarjan 算法)
poj : http://poj.org/problem?id=1523 如果无向图中一个点 u 为割点 则u 或者是具有两个及以上子女的深度优先生成树的根,或者虽然不是一个根,但是它有一个子女 w, ...
- poj 1523 SPF(双连通分量割点模板)
题目链接:http://poj.org/problem?id=1523 题意:给出无向图的若干条边,求割点以及各个删掉其中一个割点后将图分为几块. 题目分析:割点用tarjan算法求出来,对于每个割点 ...
- POJ 1523 SPF tarjan求割点
SPF Time Limit: 1000MS Memory Limit ...
- POJ 1523 SPF(寻找关节点)
SPF Time Limit: 1000MS Memory ...
- POJ 1523 SPF(求割点)
题目链接 题意 : 找出图中所有的割点,然后输出删掉他们之后还剩多少个连通分量. 思路 : v与u邻接,要么v是u的孩子,要么u是v的祖先,(u,v)构成一条回边. //poj1523 #includ ...
- POJ 1523 SPF (割点,连通分量)
题意:给出一个网络(不一定连通),求所有的割点,以及割点可以切分出多少个连通分量. 思路:很多种情况. (1)如果给的图已经不是连通图,直接“ No SPF nodes”. (2)求所有割点应该不难 ...
- POJ - 1523 SPF
题目要求割顶集,并且还要求出去掉割顶之后剩下的图连通数目. tarjan算法求出割顶后直接枚举就可以了吧. 一开始想到利用iscut[u]的次数也就是点u被判定为割顶的次数求连通分量数,还有利用与结点 ...
- poj 1523 SPF【点双连通求去掉割点后bcc个数】
SPF Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 7246 Accepted: 3302 Description C ...
- POJ 1523 SPF (去掉割点能形成联通块的个数)
思路:使用tarjan算法求出割点,在枚举去掉每一个割点所能形成的联通块的个数. 注意:后来我看了下别的代码,发现我的枚举割点的方式是比较蠢的方式,我们完全可以在tarjan过程中把答案求出来,引入一 ...
随机推荐
- 坑人的 try catch finally
一直以为这样可以关闭 fs, 其实不行 static void Main(string[] args) { FileStream fs = null; try { fs = new FileStrea ...
- PAT-乙级-1053. 住房空置率 (20)
1053. 住房空置率 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 在不打扰居民的前提下,统计住房空 ...
- win8 ubuntu
点进去看到几点注意: 1. 如果Windows是UEFI方式安装的,那Ubuntu必须也用UEFI方式安装 2. 必须用64位的Ubuntu安装文件,32位的不能探测EFI 3. 必须用UEFI的方式 ...
- 深入理解Tornado——一个异步web服务器
本人的第一次翻译,转载请注明出处:http://www.cnblogs.com/yiwenshengmei/archive/2011/06/08/understanding_tornado.html原 ...
- 【面试题013】在O(1)时间删除链表结点
[面试题013]在O(1)时间删除链表结点 我们要删除结点i,我们可以把结点i的下一个结点j的内容复制到结点i,然后呢把结点i的指针指向结点j的下一个结点.然后在删除结点j. 1.如果结点i位于链表 ...
- 为什么很多应用都安装在/usr/local目录下
为什么很多应用都安装在/usr/local目录下 很多应用都安装在/usr/local下面,那么,这些应用为什么选择这个目录呢?理解了最根源的原因后,也许对你理解linux组织文件的方式有更直观的 ...
- hdu 3951 Coin Game 博弈论
思路: 当n<=k时,先手必胜: 当k=1时,n为奇数先手胜,否则后手胜: 当k>1时,先手操作之后必定形成链,后手操作后形成二条一样的链,之后,先手怎么操作,后手就怎么操作,则后手必胜. ...
- Project Euler 89:Roman numerals 罗马数字
Roman numerals For a number written in Roman numerals to be considered valid there are basic rules w ...
- Linux 2.4.x内核软中断机制
http://www.ibm.com/developerworks/cn/linux/kernel/interrupt/ 软中断概况 软中断是利用硬件中断的概念,用软件方式进行模拟,实现宏观上的异步执 ...
- TCL语言笔记:TCL中的列表操作
一.介绍 列表则是具有特殊解释的字符串.Tcl 中的列表操作和其它 Tcl 命令一样具有相同的结构.列表可应用在诸如 foreach 这样的以列表为变元的循环命令中,也应于构建 eval 命令的延迟命 ...