POJ---1144 电话网络

简介: POJ---1144 电话网络

POJ—1144 电话网络

题目描述

20210312220934138.png

输入输出

20210312221037558.png

输入样例

5
5 1 2 3 4
0
6
2 1 3
5 4 6 2
0
0

输出样例

1
2


题意分析

题中的电话交换机就是图中的点,线路双向说明是个无向图.题中至关重要的点也就是图中的割点,一旦出现了问题影响的点也就会有许多个.所以这个题主要是求割点的个数.直接上Tarjan算法,注意输入格式的控制比较特殊.

参考代码


#include<iostream>
#include<set>
#include<string.h>
using namespace std;
const int maxn  = 100 + 10;
int head[maxn],cnt,root;
set<int> s;
struct edge{
  int to,next;
}e[maxn*maxn];
int low[maxn],dfn[maxn],num;
void add(int u,int v){
  e[++cnt].next = head[u];
  e[cnt].to = v;
  head[u] = cnt;
}
void tarjan(int u,int fa){
  dfn[u] = low[u]=++num;
  int count  = 0;
  for(int i = head[u]; i;i=e[i].next){
    int v = e[i].to;
    if(fa==v){
      continue;
    }
    if(!dfn[v]){
      tarjan(v,u);
      low[u] = min(low[u],low[v]);
      if(low[v]>=dfn[u]){
        count++;
        if(u!=root || count > 1){
          s.insert(u);//这里不能使用一个变量做统计,因为可能会出现判断重复的情况,可以使用一个结合,把成立的点加进去,最后统计集合大小即可. 
        }
      }
    }else{
      low[u] = min(low[u],low[v]);
    }
  }
}
void init(){
  memset(head,0,sizeof(head));
  memset(low,0,sizeof(low));
  memset(dfn,0,sizeof(dfn));
  cnt = num  = 0;
  s.clear();
}
int main()
{
  int n,u,v;
  while(cin>>n&&n){//控制每个case 
    init();
    while(cin>>u&&u){
      while(1){
        char ch = getchar();
        if(ch=='\n'){
          break;
        }
        cin>>v;
        add(u,v);
        add(v,u);
      } 
    }
    for(int i = 1; i <= n; i++){
      if(!dfn[i]){
        root = i;
        tarjan(i,0);
      }
    }
    cout<<s.size()<<endl;
  }
  return 0;
}


相关文章
技术宅之---用手机实现“移动网关”
本文假定读者已知道内网穿透相关认知。 或许你用过花生壳、frp、ngrok、teamviewer等穿透工具,今天要给大家介绍的是smarGate(https://github.com/lazy-luo/smarGate) 1、samrGate是什么? 官方命名为“移动网关”,通过手机客户端将位于内网的服务端网络进行按需暴露。
3653 0
|
7月前
|
SQL 安全 关系型数据库
封神台----为了女神小芳
本次实战是对自己在学习mysql数据库前对于数据库的一些基础的学习与复习,并且在实战过程中,我也熟悉了之前没有使用过的Sqlmap工具的使用,对我来说是一种很大的提高,也培养了自己独立思考和学习的能力,为自己今后的学习打好了基础.
|
7月前
蓝桥杯vip试题 报时助手
蓝桥杯vip试题 报时助手
46 0
洛谷刷题题解笔记----P1055 [NOIP2008 普及组] ISBN 号码(通过第4第8测试点)
洛谷刷题题解笔记----P1055 [NOIP2008 普及组] ISBN 号码(通过第4第8测试点)
|
数据安全/隐私保护
PTA 1076 Wifi密码 (15 分)
下面是微博上流传的一张照片:“各位亲爱的同学们,鉴于大家有时需要使用 wifi,又怕耽误亲们的学习,现将 wifi 密码设置为下列数学题答案:A-1;B-2;C-3;D-4;请同学们自己作答,每两日一换。
211 0
洛谷题单P3613---寄包柜
洛谷题单P3613---寄包柜
158 0
|
监控 Android开发 网络架构
PABX电话系统相关说明
更高效地工作,而不是更努力地工作,是每个伟大团队努力实现的目标。当然,在寻找新的商务电话系统时,很容易被任何标榜为自动的选项所吸引。(我们明白了——当我们听到“自动化”这个词时,我们也会眼花缭乱。但是,在你说“把我的钱”给下一家为你提供私人自动分行交换(PABX)系统的公司之前,你需要知道这个术语的真正含义。
PABX电话系统相关说明