题目描述
对于一个 n 个结点的带边权的树 T,定义 dis(x,y) 为 T 中 x→y 路径上的边权和。再定义一个 n 个结点的无向完全图 p(T)=G,其中 ∀x,y∈[1,n],G 中边 (x,y) 的边权为 dis(x,y)。
定义 f(T) 为 p(T) 的最大生成树。特别的,若 p(T) 的最大生成树不唯一,请立刻判断出并报告。
给定树 T0 和整数 k,求 fk(T0)。其定义将在下文给出。
输入格式
第一行两个整数 n,k。
下面第 2∼n 行,第 i 行两个整数 i−fi,vi 表示 T0 的一条边 (i,fi),边权为 vi。也就是说,这一行输入了两个整数 fi′,vi,真实的 fi=i−fi′。
输出格式
输出仅有一个整数表示答案。
若 ∃x∈[0,k−1] 使得 p(fx(T0)) 的最大生成树不唯一,输出 −1。否则,输出 fk(T0) 的所有边权和对 232 取模的结果。
3 3
1 1
2 2
13
10 2
1 7
1 2
1 5
4 5
2 1
3 9
2 9
4 4
9 4
736
4 1
1 1
2 1
3 1
-1
提示
定义
fk(T) 的定义为:
$$f^k(T)=\begin{cases}T&k=0\\f(f^{k-1}(T))&k>0\end{cases}
$$
样例 1 解释
分别是 T0,f(T0),f2(T0),f3(T0)。
以计算 f(T0) 的过程为例,生成的 p(T0)=G 为
最大生成树上的边为 (1,3),(2,3)。
数据规模
本题采用捆绑测试。
| Subtask | n≤ | k≤ | Score |
| :----------: | :----------: | :----------: | :----------: |
| 1 | 103 | 1 | 10 |
| 2 | 105 | 1 |20 |
| 3 | 106 | 1 |30 |
| 4 | 106 | 107 |40 |
对于 100% 的数据,2≤n≤106,1≤k≤107,1≤fi<i,1≤vi≤109。
特殊评分方式
本题开启子任务依赖,具体如下:
- 对于子任务 i,您需要答对所有 j∈[1,i] 的子任务 j 才能获得子任务 i 的分数。