摘要:
哎,郁闷 比赛时,WA了n多次,最终也没过,以为算法错了,可想来想去感觉没错啊!以给的最短距离为边建图,然后利用floyd算所有点之间的距离,如果i到j的距离经过k则标记i到j,最后如果i到j被标记了并且求的的最短距离等于原始的(即直连的)则可以把直连的删除即总边数减一。如果求的的距离小于直连标记 输出impossible。 原来是n个点的总边数m应该为n*(n-1); 当时不知道怎么搞成了m=2*n。View Code 1 #include <iostream> 2 #include<cstring> 3 #include<cstdio> 4 using 阅读全文