这道题在建新图的时候
for(ll i=1;i<=m;i++)
if(bel[e[i].pre]!=bel[e[i].ver] && !mp[make_pair(bel[e[i].pre],bel[e[i].ver])])
mp[make_pair(bel[e[i].pre],bel[e[i].ver])]=1,nadd_edge(bel[e[i].pre],bel[e[i].ver],e[i].len);
我试图用map去重边WA 71pts,删掉去重AC,非常不理解
还有为什么我这样dfs也能达到最短路的效果?在什么情况下不适用?
ll dis[mn];
void dfs(ll now){
for(ll i=nhead[now];i;i=ne[i].nex){
ll sub=ne[i].ver;
dis[sub]=min(dis[sub],dis[now]+ne[i].len);
dfs(sub);
}
}