我在打开此代码时遇到问题:
void dfs(int i = 1) {
static int preorder = 0;
d[i].first = ++preorder;
d[i].second = 1;
for (list<int>::iterator it = tree[i].begin(); it != tree[i].end(); ++it) {
dfs(*it);
d[i].second += d[*it].second;
}
}
进入迭代的。如您所见,它找到每个节点的预购编号以及它有多少后代。由于内存限制(数据大小最大为 10^6),我必须这样做。
提前致谢。