请问这两种dfs输出结果的区别
  • 板块学术版
  • 楼主Fislett
  • 当前回复16
  • 已保存回复17
  • 发布时间2024/7/27 10:34
  • 上次更新2024/7/27 11:55:13
查看原帖
请问这两种dfs输出结果的区别
508927
Fislett楼主2024/7/27 10:34

第一种:

inline void dfs(rint u, rint edge)
{
    if (edge) print(edge, ' ');
    while (g[u].size())
    {
        rint v = g[u].back().to, id = g[u].back().id;
        g[u].pop_back(); dfs(v, id);
    }
}

第二种:

inline void dfs(rint u, rint edge)
{
    while (g[u].size())
    {
        rint v = g[u].back().to, id = g[u].back().id;
        g[u].pop_back(); dfs(v, id);
    }
    if (edge) s[++ tp] = edge;
}
......
for (rint i = m; i; -- i) print(s[i], ' ');

rt,第一种只有37分,第二种过了,求助这两种dfs什么时候结果不一样。

2024/7/27 10:34
加载中...