关于subtask#1
查看原帖
关于subtask#1
1023726
summerer楼主2023/11/28 21:31

subtask#1 形成的是森林,就是不只有一棵树,用倍增的时候要预处理dist(就是到根节点的距离),我之前每次就是dfs(n),只处理了一棵树的dist

	// 可能有多棵树,形成森林
	bool bb[n];
	bb[n] = true;
	// n一定是一个根节点
	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;
		}
	}

这样就可以处理所有的树,然后就过了

2023/11/28 21:31
加载中...