```cpp
floyd多加一些特判//lu用来存图,d表示距离
for(int k=0;k<n;k++){
if(vis[k])continue;
if(z<ct[k])continue;
vis[k]=1;
for(int i=0;i<n;i++){
if(i==k)continue;
for(int j=0;j<n;j++){
if(i==j||j==k)continue;
lu[i][j]=min(lu[i][j],lu[i][k]+lu[k][j]);
d[i][j]=lu[i][j];
}
}
}
```
by cacfov @ 2017-09-24 18:48:51
我跑的最慢160ms
by cacfov @ 2017-09-24 18:49:50
@[cacfov](/space/show?uid=36036) 感谢~
by ayase @ 2017-09-24 23:10:50