玄学求助
查看原帖
玄学求助
209604
pikabi楼主2020/8/1 20:57

关于第二篇题解的dfs,如果将原题解中的语块

for (int i=head[u]; i!=-1; i=e[i].nex)
    {
        int v=e[i].to;
        if (v==f) continue;
        dfs(v,u);
        if (d[u]<d[v]+w[v]) 
        {
            d[u] = d[v]+w[v];
            heavy[u] = v;
        }
    }
for (int i=head[u]; i!=-1; i=e[i].nex)
    {
        int v=e[i].to;
        if (v==f) continue;
        cnts++;  son[cnts].e = d[v]+w[v];  son[cnts].v = v;
    }

把下面for的内容放入上一个for中,就会WA掉

for (int i=head[u]; i!=-1; i=e[i].nex)
    {
        int v=e[i].to;
        if (v==f) continue;
        dfs(v,u);
        if (d[u]<d[v]+w[v]) 
        {
            d[u] = d[v]+w[v];
            heavy[u] = v;
        }
        cnts++;  son[cnts].e = d[v]+w[v];  son[cnts].v = v;
    }

这是为什么呢,感觉没有多大的差异,自己也想不明白

2020/8/1 20:57
加载中...