萌新的两个问题
查看原帖
萌新的两个问题
389425
__ex楼主2023/6/16 21:49

这道题在建新图的时候

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);
    }
}
2023/6/16 21:49
加载中...