CFCF1498F.Christmas Game

提高+/省选-

官方

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

Alice 和 Bob 打算通过玩一个礼物树的游戏来庆祝圣诞节。这棵树有 nn 个节点(编号为 11nn,以某个节点 rr 作为根)。第 ii 个节点上挂着 aia_i 个礼物。

在游戏开始前,会选择一个特殊的整数 kk。游戏规则如下:

  • Alice 先手,之后双方轮流行动;
  • 每一回合,当前玩家可以选择某个深度至少为 kk 的节点(比如 ii),然后从该节点上取走任意正整数个礼物,记为 mm1mai1 \le m \le a_i);
  • 玩家将这 mm 个礼物放到节点 ii 的第 kk 级祖先(记为 jj)上(节点 ii 的第 kk 级祖先是指 iijj 的后代,且 jj 的深度与 ii 的深度之差恰好为 kk)。此时,第 ii 个节点的礼物数 aia_i 减少 mm,第 jj 个节点的礼物数 aja_j 增加 mm
  • Alice 和 Bob 都会采取最优策略。无法进行操作的玩家判负。

对于每一个可能的树根,求出 Alice 和 Bob 谁会获胜。

注意:在以 rr 为根的树中,节点 ii 的深度定义为从根节点 rr 到节点 ii 的简单路径上的边数。根节点 rr 的深度为 00

输入格式

第一行包含两个用空格分隔的整数 nnkk3n105,1k203 \le n \le 10^5, 1 \le k \le 20)。

接下来的 n1n-1 行,每行包含两个整数 xxyy1x,yn,xy1 \le x, y \le n, x \neq y),表示在节点 xxyy 之间有一条无向边。这些边构成一棵有 nn 个节点的树。

最后一行包含 nn 个用空格分隔的整数,表示数组 aa0ai1090 \le a_i \le 10^9)。

输出格式

输出 nn 个整数,第 ii 个整数表示当以第 ii 个节点为根时,Alice 是否能获胜。如果 Alice 获胜输出 11,否则输出 00

输入输出样例

  • 输入#1

    5 1
    1 2
    1 3
    5 2
    4 3
    0 3 2 4 4

    输出#1

    1 0 0 1 1

说明/提示

我们以节点 11 和节点 22 分别作为根节点,计算样例输入的答案。

以节点 11 为根时:

Alice 总是能获胜。可能的游戏过程如下:

  • Alice 从节点 44 移动一个礼物到节点 33
  • Bob 从节点 55 移动四个礼物到节点 22
  • Alice 从节点 22 移动四个礼物到节点 11
  • Bob 从节点 22 移动三个礼物到节点 11
  • Alice 从节点 33 移动三个礼物到节点 11
  • Bob 从节点 44 移动三个礼物到节点 33
  • Alice 从节点 33 移动三个礼物到节点 11

此时 Bob 无法再进行操作,因此 Bob 输了。

以节点 22 为根时:

Bob 总是能获胜。可能的游戏过程如下:

  • Alice 从节点 44 移动四个礼物到节点 33
  • Bob 从节点 55 移动四个礼物到节点 22
  • Alice 从节点 33 移动六个礼物到节点 11
  • Bob 从节点 11 移动六个礼物到节点 22

此时 Alice 无法再进行操作,因此 Alice 输了。

首页