警示后人(如果你20~30pt)
查看原帖
警示后人(如果你20~30pt)
358789
dhsheng楼主2024/12/21 10:43

若你在进行排序时使用了一个全局的数组暂时存储,并且你并没有将递归和排序放到两个循环中,那你下一轮的dfs会将数组中的信息覆盖掉

例:

for (int i = 0; i < e[u].size(); i++)
    {
        if (e[u][i] == fa) continue;

        int v = e[u][i];
        dfs(v, u);
        st[++tmp] = v;
    }

for (int i = 0; i < e[u].size(); i++)
{
    if (e[u][i] == fa) continue;
    dfs(e[u][i], u);
}
for (int i = 0; i < e[u].size(); i++)
{
    if (e[u][i] == fa) continue;
    st[++tmp] = e[u][i];
}

30pt -> 100pt

2024/12/21 10:43
加载中...