恶心题过一道就少一道~~~撒花花~~~不让用表情,我随便搜个吧~~chrome的频率好快。。
这题啊,理解题意是件很困难的事情~
先说题意吧,给你起点,终点,边,以及边的长度 和从这边到那边的花费,而且必须走这么一条路。。。即当前点,花费最少的的路,而且最终长度最短的路。如果从s到t上存在负环,输出UNXXXX,如果没有这种路,输出VOID。
关于VOID这个路哈,样例我始终理解不了,就在昨天,突然理解啦!!!哈哈!把不是最优的边删掉,就可能到达不了了哦。。。就是VOID。
反正就是先删边啦。。。删边纠结了许久 = = 。。。然后找负环又纠结了。我本来用的SPFA,然后判断出来负环后,用DIJKSTRA,发现有问题。有很大问题T T 。。。后来求长度也有问题,各种问题啊!!!后来发现,如果直接求长度的最短路,可能花费不是最小的,需要在花费最小的前提下求得最短的路T T。。。然后改了改。。。各种数据,XH同学提供的数据很打击人啊。。。T T各种不匹配。。
后来发现,还是判断点是否在负环里是个大问题,最终用别人的思路,bellmanford判断前后路程是否改变,但是如果需要松弛多次才能判断出来的话,用bellman还是判断不出来,所以就需要把在负环上的弄得很小,使他足够使它连接的点得到松弛~
改了一天了,A掉了,把党姐刷下去了。。。Bellman-ford终于有用武之地了^ ^