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过程中把答案求出来,引入一 ...
随机推荐
- tangent space /handness
normal tangent bitangent 三者互相垂直. 组成一个tangent space 表示一个点 对于原本位置的偏移(扰动) 考虑到这是为了 normalmap做出虚假的normal来 ...
- cookie中转注入实战
随着网络安全技术的发展,SQL注入作为一种很流行的攻击方式被越来越多的人所知晓.很多网站也都对SQL注入做了防护,许多网站管理员的做法就是添加一个防注入程序.这时我们用常规的手段去探测网站的SQL注入 ...
- 【锋利的JQuery-学习笔记】添加提示图片
效果图: hot图片: (注意:这个图标本身就有抖动效果的,并不是由于标签<del>而具有抖动效果) 周期性抖动,起到提示的作用 html: <div class="jnC ...
- POJ2503Babelfish
http://poj.org/problem?id=2503 这个题一开始是想用字典树,发现太麻烦..... #include<cstdio> #include<cstring> ...
- 【转载】Eclipse自动编译问题
今天调试的时候发现问题:调试的时候竟然在我注释的里面走,当时那个郁闷啊,每次都要clean下才可以,晚上感觉不对劲,上网查了查,原来是bulid automatically这个我把勾去掉了,下面是原文 ...
- IOS 开发中判断字符串是否为空字符的方法
NSUInteger是无符号的整型, NSInteger是有符号的整型,在表视图应用中常见 NSUInteger row= [indexPath row];因为这是显示tableViewCell有多少 ...
- Orcle数据库编程:一
1.PL/SQL是一种块结构的语言,一个PL/SQL程序包含了一个或者多个逻辑块,逻辑块中可以声明变量,变量在使用之前必须先声明. declare mstu student%ROWTYPE;--定义参 ...
- Chrome中的消息循环
主要是自己做个学习笔记吧,我经验也不是很丰富,以前学习多线程的时候就感觉写多线程程序很麻烦.主要是线程之间要通信,要切线程,要同步,各种麻烦.我本身的工作经历决定了也没有太多的工作经验,所以chrom ...
- python脚本实例001 - 通过列表内容判断输入输出信息
要点总结: 输入输出方法,input().print()方法 list列表应用,list是一种有序的集合,可以随时添加和删除其中的元素. 条件语句if-else应用 #! /usr/bin/pytho ...
- android从应用到驱动之—camera(1)---程序调用流程
一.开篇 写博客还得写开篇介绍,可惜,这个不是我所擅长的.就按我自己的想法写吧. 话说camera模块,从上层到底层一共包含着这么几个部分: 1.apk------java语言 2.camera的ja ...