编程题
### 问题描述 给定一棵 $n$ 个节点的树,节点的编号从 $1$ 开始,树的边为无向边,其中边权只有 $1、2、3$ 这三种。现在定义 $u→v$ 两点之间的距离 $dis(u,v)$ 为两点间简单路径上所有边权的异或和。 小蓝的体力值为 $k$ ,他从 $1$ 号节点出发,做一次旅行(必须离开 $1$ 号节点,走到某节点后停下),到达某节点 $u$ 所耗费的体力值为 $dis(1,u)$。试问:在小蓝不透支体力的前提下(旅行结束,$k \geq 0$),他可能的能够到达的节点数量有多少($1$ 号节点不算)?如果他任何一个节点都访问不了,请输出 $-1$。 ### 输入格式 第 $1$ 行两个整数 $n,k$,分别表示树的节点数和小蓝的体力值。 接下来 $n-1$ 行,每行三个整数 $x,y,z$,表示点 $x$ 和点 $y$ 有一条边相连,边权为 $z$。 ### 输出格式 输出共 $1$ 行,若有解,输出一个整数表示小蓝能够到达的节点数量;否则输出 $-1$。 ### 样例输入 ```text 7 1 1 2 1 1 3 3 1 4 2 2 5 3 3 6 2 4 7 2 ``` ### 样例输出 ```text 3 ``` ### 说明 样例中,小蓝从 $1$ 号节点出发:如果到达 $2$ 号节点,则耗费 $1$ 点体力;如果到达 $3$ 号节点,则耗费 $3$ 点体力;如果到达 $4$ 号节点,则耗费 $2$ 点体力;如果到达 $5$ 号节点,则耗费 $1 \oplus 3=2$ 点体力;如果到达 $6$ 号节点,则耗费 $3 \oplus 2=1$ 点体力;如果到达 $7$ 号节点,则耗费 $2 \oplus 2=0$ 点体力。所以小蓝能到达 $1、6、7$ 号节点,总共 $3$ 个节点。 ### 评测数据规模 对于所有评测数据,$1 \leq n \leq 2 \times 10^5$,$0 \leq k \leq 3$,$1 \leq x, y \leq n$,$1 \leq z \leq 3$。
查看答案
赣ICP备20007335号-2