poj1144

该博客介绍了一个关于电话线缆网络的问题,其中当某个地点出现故障时,可能导致其他地点无法通信。这样的地点被称为critical地点。文章提供了一个程序来找出所有critical地点的数量,并给出了输入输出示例以及割点判定的条件。
摘要由CSDN通过智能技术生成

Poj 1144
描述
一个电话线公司(简称TLC)正在建立一个新的电话线缆网络。他们连接了若干个地点分别从1到N编号。没有两个地点有相同的号码。这些线是双向的并且能使两个地点保持通讯。每个地点的线都终结于电话交换机。每个地点都有一个电话交换机。从每个地点都能通过线缆到达其他任意的地点,然而它并不需要直接连接,它可以通过若干个交换机来到达目的地。有时候某个地点供电出问题时,交换机就会停止工作。TLC的工作人员意识到,除非这个地点是不可达的,否则这种情况就会发生,它还会导致一些其它的地点不能互相通讯。在这种情况下我们会称这个地点(错误发生的地方)为critical。现在工作人员想要写一个程序找到所有critical地点的数量。帮帮他们。

输入
输入文件包括若组测试数据。每一组是一个网络,每一组测试数据的第一行是地点的总数量N<100. 每个接下来最多N行包括一个数字表示一个地点和与它相连接的地点的数字。这些最多N行完全描述了整个网络,比如,网络中每个直接连接的两个地点被至少一行包括。一行内的所有数字都要用空格隔开。每组数据需要用单独的一个0结束。最后的块只有一行即N=0。

输出
输出除了最后一个组其他每一个组的critical地点的数量,每个块用一行输出。

样例输入:
5
5 1 2 3 4
0
6
2 1 3
5 4 6 2
0
0

样例输出
1
2

提示:
你需要确定每行的结束。为了方便判断,每行的结束都没有多余的空白

割点判定
对于DFS树根, 判断度数是否大于1
对于其他点u, 如果不是根的直接儿子, 且low[u] >= dfn[P[u]], 则它的父亲v=

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值