hdu 5296,15年多校1-7

题意:

  给定一个无向带权图G(n, m),一个人要沿着最短路从1走到n,现在可以任意从图上删边。求,最少删多少边可以使之无法到达终点  和   最多删多少边其仍可以到达终点

想法:

  比赛时的想法:直接跑最小费用最大流,spfa的时候维护一个最短路的值(min_dist),如果当前求得增广路径的最短路的值大于min_dist,肯定后面的最短路就都大于min_dist了,此时就已经求出最大流即第一问的答案了。在求增广路径的过程中维护所有最短路的最小边数,总边数减去最小边数就是即为第二问的答案。(没有觉得思路有什么问题,赛后对着数据,总是有两组跑的特别慢并且答案也是错的)。

  后来按照标程写了一个,先一遍spfa求出所有最短录,并且得到最少边数。然后遍历所有边将最短路建图(这个图是根据最短路中dist值建的有向图),在新图上跑一遍最大流。结果两组数据还是过不去。

 

现记下来,回头补上。

你可能感兴趣的:(HDU)