题意:
给定一棵树和m个询问 每个询问要求回答不在u和v两节点所形成的路径上的点的最小标号
思路:
一开始以为是LCA… 不过T了好几次… 后来发现不用LCA也可做
考虑每个询问u和v 如果他们的lca不是1 则1一定是答案 不过求lca会T 那么我们只需要在遍历树的时候给节点染色 染的颜色就是1的儿子的颜色 如果x这个点在y的子树中(y是1的儿子)那么他的颜色就是y
染完色后我们考虑答案是如何构成的
如图所示 答案即是 红色 蓝色 绿色的子树中节点的最小值 那么我们只需要分开三部分求解即可
定义f[u][x]表示以u为根的子树中第x大的节点标号 这个可以通过树形dp求解 有了这个就可以解决绿色和红色的部分