首先,我们可以知道可以作为第一个的一定是度数(<3)的点。
那么我们找到最小的度数(<3)的点,先把它作为根。
显然它并不能作为根,我们要对根进行调整。
(dp)出(f_i)表示(i)子树内最小的度数(<3)的点。
假设根在(u),
如果它只有(1)个儿子(v),且(v)<(u),那么根在(v)的子树内会更优。
如果它有两个儿子,那么它不能作为根(度数(>2)),那么我们要选一个儿子,
仔细分析后发现我们会进入(f)更大的儿子。
然后就是简单模拟了。
首先,我们可以知道可以作为第一个的一定是度数(<3)的点。
那么我们找到最小的度数(<3)的点,先把它作为根。
显然它并不能作为根,我们要对根进行调整。
(dp)出(f_i)表示(i)子树内最小的度数(<3)的点。
假设根在(u),
如果它只有(1)个儿子(v),且(v)<(u),那么根在(v)的子树内会更优。
如果它有两个儿子,那么它不能作为根(度数(>2)),那么我们要选一个儿子,
仔细分析后发现我们会进入(f)更大的儿子。
然后就是简单模拟了。