#P1388. Hinge Node Problem
Hinge Node Problem
P1388. 枢纽节点问题
描述
几十年来,人们已经认识到数据通信的重要性。通信网络的大多数设计和分析通常将其拓扑结构建模为图形表示,因为网络的许多相关问题可以通过使用图论结果来解决。通常,一个通信网络被建模为一个图,图中的节点和边分别对应通信站点和链路。一个网络由一组节点和一组边组成,边表示节点对。如果这些节点对被认为是无序的,那么我们就有一个无向网络,连接两个节点和的边用表示。例如,图 3 描绘了一个包含 10 个节点和 16 条边的网络。
在一个网络中,两个节点和之间的距离,用表示,是中从到的最短路径的边数。顶点序列是中从到长度为的路径,条件是对于,在和之间有一条边。如果节点和之间不存在路径,那么。如果路径的长度在和之间的所有路径中是最小的,那么该路径就是和之间的最短路径。如果任意两个节点之间都存在路径,那么这个网络是连通的。节点的失效意味着及其所有关联边都从中移除,剩余的子网络表示为。节点被称为枢纽节点,如果在中存在另外两个节点和,使得。这意味着在节点从中移除后,和之间的距离增加了。因此,枢纽节点可以被视为相应网络的关键节点,这样的节点失效会增加剩余子网络的通信成本。例如,我们考虑图 3 中的网络。节点是一个枢纽节点,因为。实际上,中包含的枢纽节点集合是。
假设我们有几个网络。每个网络都是连通的,并且最多包含个节点,其中。现在假设你被聘请为网络管理员,你应该分析通信成本。因此,你会对找到给定网络中的所有枢纽节点感兴趣。特别地,你应该设计一个程序,能够有效地计算每个给定网络中枢纽节点的总数。
输入
输入文件包含多于一个且少于六个网络(案例)。每个测试用例以一个正整数开始,其中。接下来的行表示一个网络的邻接矩阵。最后一个案例后面跟着一个“0”,表示“输入结束”。一个具有个节点的网络的邻接矩阵,用表示,是一个的矩阵,使得如果,则,否则。注意,在矩阵的每一行中,任意两个元素之间没有分隔符。例如,图 3 中图形的邻接矩阵如示例输入的测试用例 3 所示。
输出
对于每个测试用例,在一行中输出枢纽节点的总数。
输入数据 1
3
010
101
010
3
011
101
110
10
0110001000
1001000111
1000001100
0100010101
0000000101
0001000001
1010000010
0111100000
0100001000
0101110000
0
输出数据 1
1
0
6
来源
台湾 2001