我啊,自作聪明用dij先最短路,然后用bellman的判断负环判断 = =。。。结果WA得很惨。
后来改成bellman-ford,党的那种 = =。。
if( ( dis[x] - comm) * rate > dis[y] + 1e-5 ) 写成了if( ( dis[x] - comm) * rate > dis[y] ) 居然TLE了 = =。。找了半天错。无语了都。为什么捏。待考证 = =。
/*下面的想法是错误的。
在poj上表示完全无影响,要不要1e-5都能过。zoj上,从1e-5到1e-14都能AC,而且是0ms。到1e-15就TLE了。
应该是这样的,比如加了1e-5,加了这个判断就是比较到小数位后5位就停止了,不用比较后来的位数。如果直接用>的话,就会把小数后所有的位数比较一遍,意义不大还耗费时间。
这个被GB否定了 T T.。。。*/
double精度在15-16位,大小在1.7E-308~1.7E+308,如果esp == 1e-15,则比较的结果不准呢。这个应该是造成TLE的问题吧。可能一直比较,得不到要的结果。。。