污水处理点
   

  问题描述:

  WH市的底下水管道是呈网络装铺设的。在一些地方,有小型污水处理点,编号从1到N。这些污水处理点负责将经过该点的所有管道中的水处理和转向。

  小明知道,管道是双向的,并且每个污水处理点处理的水都可以流到任意的另一个污水处理点(可能要通过其他污水处理点)。

  然而,管道是有长度大小的,水从一个污水处理点流到另一个污水处理点总是按照最短路径进行流动的。

  小明计算出:任意两个处理点之间的最短路径管道长度和为D(i,j)。

  由于地下污水处理点过多,导致水流的大混乱L。小明希望能够拆除一些地下污水处理点。小明是这样定义一个可拆除的污水处理点的:

  对于污水处理点u,在其他点都不拆除的情况下,u满足:

  1) 拆除u后,图仍然保持连通性--任意两个污水处理点可以互相到达;
  2) 拆除u后,与u相连的管道也被拆除。此时,图中剩下的任意两个污水处理点之间的最短路径管道长度和为D'(i,j)。对于任意的(i,j) (i≠u,j≠u),都要满足D'(i,j) = D(i,j),即最短路径长度不变。

  在满足上述两个条件的情况下,污水处理点u是可拆除点。

  小明希望你能帮他统计出WH市地下所有可以拆除的污水处理点。

  输入文件:net.in

  输入文件第一行有两个整数N和M。
  N为点数,M为管道数目(3 ≤ N ≤ 50,2 ≤ M ≤ 1250)。
以下M行,每行有三个数p、q和w(1 ≤ p ≤ q ≤ N,1 ≤ w ≤ 100),表示污水处理点p和污水处理点q之间有一条长度为w的管道。

  输出文件:net.out

  输出文件第一行为可以拆除的污水处理点的个数K。
  以下K行,按编号从小到大顺序,依次输出每个可拆除的污水处理点的编号。

  样例输入:net.in

  4 4
  1 2 1
  2 3 1
  3 4 100
  1 4 1

  样例输出:net.out

  2
  3
  4

   

 
网站导航 | 关于曙光 | 联系我们 | 请提意见
Copyright © FuJian Sunshine Educational Info. Co.,Ltd.
福建曙光教育资讯有限公司 版权所有