subtask#1
形成的是森林,就是不只有一棵树,用倍增的时候要预处理dist(就是到根节点的距离),我之前每次就是dfs(n),只处理了一棵树的dist
bool bb[n];
bb[n] = true;
dist[n] = 1;
dfs(n);
for (int i = 1; i <= n; i++)
{
int father = findset(i);
if (!bb[father])
{
dist[father] = 1;
dfs(father);
bb[father] = true;
}
}
这样就可以处理所有的树,然后就过了