|
@@ -48,7 +48,7 @@ for cs in range(1, t + 1):
|
|
|
|
|
|
题意:给一个树 $T = (V, E)$,你可以指定一个双射
|
|
|
$f: V \\rightarrow \\{1, 2, \cdots, |V|\\}$。如果
|
|
|
-$(i, j) \\in E$,且 $f(i) \\oplus f(j) \\leq \\min(f(i), f(j))$,就把
|
|
|
+$(i, j) \\in E$,且 $f(i) \\oplus f(j) > \\min(f(i), f(j))$,就把
|
|
|
$(i, j)$ 这条边删掉,这样会得到一个森林 $G = (V, E')$。
|
|
|
然后你选一个点 $v\_0$ 放一个棋子。之后你的对手先手,两人轮流移动,
|
|
|
每次可以将棋子沿 $E'$ 中的一条边进行移动,不能移动到棋子曾经占据过的点,
|
|
@@ -59,9 +59,9 @@ $(i, j)$ 这条边删掉,这样会得到一个森林 $G = (V, E')$。
|
|
|
自闭了一会以后就想到怎么构造了:首先 $T$ 作为树一定是二分图。
|
|
|
那么我们对它做一个黑白染色,一定有一种颜色的点 (不妨设是黑点)
|
|
|
的个数 $c$ 不超过 $\\lfloor n / 2 \\rfloor$。然后我们发现若 $a > 0$ 且
|
|
|
-$b > 0$,$a \\oplus b \\leq \\min(f(i), f(j))$ 的一个必要条件是
|
|
|
+$b > 0$,则 $a \\oplus b > \\min(f(i), f(j))$ 的一个充分条件是
|
|
|
|
|
|
-$$\\text{highbit}(a) = \\text{highbit}(b)$$
|
|
|
+$$\\text{highbit}(a) \\neq \\text{highbit}(b)$$
|
|
|
|
|
|
其中 $\\text{highbit}(x)$ 是 $x$ 中最高的,为 $1$ 的二进制位。
|
|
|
于是我们把 $S = \\{1, 2, \cdots, |V|\\}$ 按照 $\\text{highbit}$
|
|
@@ -73,8 +73,8 @@ $$S\_2 = \\{ 4, 5, 6, 7 \\}$$
|
|
|
$$\\cdots$$
|
|
|
$$S\_m = \\{ \\cdots, |V| \\}$$
|
|
|
|
|
|
-这样如果 $i \\neq j$ 且 $u \\in S\_i$, $v \\in S\_j$, 则
|
|
|
-$(u, v) \notin E'$。
|
|
|
+这样如果 $i \\neq j$ 且 $u \\in S\_i$, $v \\in S\_j$, 则边一定会被删掉,
|
|
|
+即 $(u, v) \notin E'$。
|
|
|
|
|
|
显然,对于 $k < m$,$|S\_k| = 2^k$,
|
|
|
且
|