CF1055F.Tree and XOR
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a connected undirected graph without cycles (that is, a tree) of n vertices, moreover, there is a non-negative integer written on every edge.
Consider all pairs of vertices (v,u) (that is, there are exactly n2 such pairs) and for each pair calculate the bitwise exclusive or (xor) of all integers on edges of the simple path between v and u . If the path consists of one vertex only, then xor of all integers on edges of this path is equal to 0 .
Suppose we sorted the resulting n2 values in non-decreasing order. You need to find the k -th of them.
The definition of xor is as follows.
Given two integers x and y , consider their binary representations (possibly with leading zeros): xk…x2x1x0 and yk…y2y1y0 (where k is any number so that all bits of x and y can be represented). Here, xi is the i -th bit of the number x and yi is the i -th bit of the number y . Let r=x⊕y be the result of the xor operation of x and y . Then r is defined as rk…r2r1r0 where:
$$ r_i = \left\{ \begin{aligned} 1, ~ \text{if} ~ x_i \ne y_i \\ 0, ~ \text{if} ~ x_i = y_i \end{aligned} \right. $$输入格式
The first line contains two integers n and k ( 2≤n≤106 , 1≤k≤n2 ) — the number of vertices in the tree and the number of path in the list with non-decreasing order.
Each of the following n−1 lines contains two integers pi and wi ( 1≤pi≤i , 0≤wi<262 ) — the ancestor of vertex i+1 and the weight of the corresponding edge.
输出格式
Print one integer: k -th smallest xor of a path in the tree.
输入输出样例
输入#1
2 1 1 3
输出#1
0
输入#2
3 6 1 2 1 3
输出#2
2
说明/提示
The tree in the second sample test looks like this:
For such a tree in total 9 paths exist:
- 1→1 of value 0
- 2→2 of value 0
- 3→3 of value 0
- 2→3 (goes through 1 ) of value 1=2⊕3
- 3→2 (goes through 1 ) of value 1=2⊕3
- 1→2 of value 2
- 2→1 of value 2
- 1→3 of value 3
- 3→1 of value 3