编程题
### 问题描述 给定一棵 $ n $ 个节点的树,按照 $ 1\sim n $ 编号,每条边的边权为 $ w_i $ , * 当一条链恰好包含 $ k $ 条边时,我们约定其长度为 $ k $ 。 * 设某条链上所有边权**按位与**起来的值为 $ V $ ,那么且我们称这条链的幸运值 $ g $ 为:最大能整除 $ V $ 的二次幂 $ g=2^i $ 。 那么我们约定 $ f(k) $ 为:这棵树上所有恰好含 $ k $ 条边的链的幸运值 $ g $ 的最小值。 请计算 $ f(1),f(2),\cdots,f(n-1) $ 。 * 特别地,若树中不存在长度为 $ k $ 的链,则 $ f(k)=-1 $ 。 ### 输入格式 第一行,包含一个正整数 $ n(1\le n\le 10^5) $ ,表示树的结点数量。 接下来的 $ n-1 $ 行,每行 $ 3 $ 个整数 $ u_i,v_i,w_i$ ,表示 $ u_i $ 和 $ v_i(1\le u_i,v_i\le n) $ 之间存在一条边权为 $ w_i(1\le w_i<2^{60}) $ 的无向边。 数据保证**任意**一条链的所有边权**按位与**起来的值均大于 $ 0 $ 。 ### 输出格式 共 $ n-1 $ 行,第 $ i $ 行包含一个整数,表示 $ f(i) $ 的值。 ### 样例输入 ``` 6 1 2 5 1 3 7 4 6 14 3 5 5 3 4 13 ``` ### 样例输出 ``` 1 1 1 4 -1 ```
查看答案
赣ICP备20007335号-2