ZOJ1311, POJ1144 Network
题目描述:
TLC电话线路公司正在新建一个电话线路网络。他们将一些地方(这些地方用1到N的整数
标明,任何2个地方的标号都不相同)用电话线路连接起来。这些线路是双向的,每条线路连接
2个地方,并且每个地方的电话线路都是连接到一个电话交换机。每个地方都有一个电话交换机。
从每个地方都可以达到其他一些地方(如果有线路连接的话),然而这些线路不一定必须是直接连
接的,也可以是通过几个电话交换机到达另外一个地方。但是有时会因为电力不足导致某个地方
的交换机不能工作。TLC的官员意识到一旦出现这种情况(在某个地方的交换机不工作,即这个
结点与其他结点之间的线路都断开了),除了这个出现故障的地方是不可达外,还可能导致其他一
些(本来连通的)地方也不再连通。称这个地方为关节点。
现在TLC的官员努力想写一个程序来找到关节点的数目。请帮助他们。 // 求连通图 割点的个数 继续tarjan了 #include <iostream>
#include <algorithm>
#include <queue>
#include <math.h>
#include <stdio.h>
#include <string.h>
using namespace std;
#define MOD 1000000007
#define maxn 110
bool G[maxn][maxn];
int low[maxn],pre[maxn];
bool ans[maxn];
int dfst;
int node;
int child;
void init(){
dfst=;
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]=true;
else child++;
}
}
else lowu=min(lowu,pre[v]);
}
}
return lowu;
}
void deal(char *str,int u){
int t=,v;
int i;
for(i=;str[i]!='\0';i++){
if(str[i]>=''&&str[i]<='')
{
t=t*+str[i]-'';
}
else
{
if(t){
v=t;
G[u][v]=G[v][u]=true;
}
t=;
}
}
if(t){
v=t; v=t;
G[u][v]=G[v][u]=true;
}
}
int main()
{
int u;
char str[];
while(scanf("%d",&node),node){
init();
while(scanf("%d",&u),u){
gets(str);
deal(str,u);
}
//for()
dfs();
int found=;
if(child>) ans[]=true;
for(int i=;i<=node;i++)
if(ans[i])
found++;
printf("%d\n",found);
}
return ;
}
ZOJ1311, POJ1144 Network的更多相关文章
- POJ1144 Network(割点)题解
Description A Telephone Line Company (TLC) is establishing a new telephone cable network. They are c ...
- POJ1144 Network 无向图的割顶
现在打算重新学习图论的一些基础算法,包括像桥,割顶,双连通分量,强连通分量这些基础算法我都打算重敲一次,因为这些量都是可以用tarjan的算法求得的,这次的割顶算是对tarjan的那一类算法的理解的再 ...
- poj1144 Network【tarjan求割点】
转载请注明出处,谢谢:http://www.cnblogs.com/KirisameMarisa/p/4319585.html ---by 墨染之樱花 [题目链接]http://poj.org/p ...
- [POJ1144]Network
来源:Central Europe 1996 思路:Tarjan求割点. 一个点$x$为割点当且仅当: 1.$x$为根结点且有两棵不相交的子树. 2.$x$不为根结点且它的子树中没有可以返回到$x$的 ...
- POJ1144:Network(无向连通图求割点)
题目:http://poj.org/problem?id=1144 求割点.判断一个点是否是割点有两种判断情况: 如果u为割点,当且仅当满足下面的1条 1.如果u为树根,那么u必须有多于1棵子树 2. ...
- [poj1144]Network(求割点模板)
解题关键:割点模板题. #include<cstdio> #include<cstring> #include<vector> #include<stack& ...
- POJ1144 Network 无向图割点
题目大意:求以无向图割点. 定义:在一个连通图中,如果把点v去掉,该连通图便分成了几个部分,则v是该连通图的割点. 求法:如果v是割点,如果u不是根节点,则u后接的边中存在割边(u,v),或者v-&g ...
- POJ1144 Network 题解 点双连通分量(求割点数量)
题目链接:http://poj.org/problem?id=1144 题目大意:给以一个无向图,求割点数量. 这道题目的输入和我们一般见到的不太一样. 它首先输入 \(N\)(\(\lt 100\) ...
- 【poj1144】 Network
http://poj.org/problem?id=1144 (题目链接) 题意 求无向图的割点. Solution Tarjan求割点裸题.并不知道这道题的输入是什么意思,也不知道有什么意义= =, ...
随机推荐
- memcached+php客户端
连接memcached <?php $mem = new Memcache; $mem->connect('localhost',11211) or die("connected ...
- HTML/CSS中常遇到的bug 一些注意事项总结
1.IE6下横向双倍margin bug (触发条件:块属性标签:float:横向margin设置:IE6下.解决办法:css中加入display:inline.) 2.css中公用属性首先声明:如对 ...
- window dos 设置网络
->netsh ->pushd interface ip ->set address "本地连接" static 192.168.1.2 255.255.255. ...
- GCD异步加载网络图片
//image dispatch_queue_t network_queue; network_queue = dispatch_queue_create("com.myapp.networ ...
- POJ 2106 Boolean Expressions (布尔表达式求值)
题意:关于!,&,| 的运算,表达式中V代表true,F代表false. 思路:见代码吧,很详细了. 要注意 !!!F,!(...) 的情况. #include <iostream> ...
- 编写高性能JavaScript【转】
英文链接:Writing Fast, Memory-Efficient JavaScript 很多JavaScript引擎,如Google的V8引擎(被Chrome和Node所用),是专门为需要快速执 ...
- HttpWebRequest和HttpWebResponse
原文:http://blog.csdn.net/haitaofeiyang/article/details/18362225 申公前几日和一个客户做系统对接,以前和客户对接一般采用webservice ...
- Struts2 SSH整合框架返回json时,要注意懒加载问题
返回的这个json对象,要保证它里面的所有属性都已经取出来了(即不是proxy或者是懒加载),否则当struts框架将该对象转化成json数据时,会报出一个no session的错误. 因此你要将该懒 ...
- httpclient发送multipart/form-data类型参数和用MultipartRequest接收参数
一.利用HttpClient发送基于Content-Type="multipart/form-data"形式的表单 package com.test.httpclient; imp ...
- 李洪强iOS开发之OC[013] -类的创建的练习
// // main.m // 12 - 类的创建练习 // // Created by vic fan on 16/7/9. // Copyright © 2016年 李洪强. All ri ...