CF195E.Building Forest
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
题意翻译
一个有向加权森林是无环有向加权图,其中每个顶点至多有一条边。有向加权森林中,顶点 $ v $ 的根是一个没有出边的顶点,并且可以通过沿着加权有向森林的边从顶点 $ v $ 到达。现将顶点 $ v $ 的根记为 $ root(v) $。顶点v的深度是从顶点 $ v $ 到其根的路径的权重之和。现将顶点 $ v $ 的深度表示为 $ depth(v) $。
构建加权定向森林的过程如下:最初,森林不包含顶点。顶点按顺序逐个添加。总体而言,有 $ n $ 个执行的加法操作。
第 $ i(i>0)个操作由一组数字( k , v1 , x1 , v2 $, $ x2 $, ... $ vk , xk $) 描述,意味着我们应该将顶点 $ i $ 下的边 $ k $ 添加到图中。
从顶点 root(v1) 到顶点$ i $的边,权重为 $depth( v_1 ) + x_1 $;从顶点 root(v2) 到顶点$ i $的边,权重为 $ depth( v2 ) + x2 $ ,以此类推。如果 $ k=0 $,那么图中只增加了顶点 $ i $ ,没有增加任何边。
现给定添加的顶点,请计算森林所有边的权重之和。由于数据可能很大,请将输出的数据模 1000000007 (109+7)。
输入格式
第一行包含一个整数 $ n (1 ≤ n ≤ 10^5) $
接下来的 $ n $ 行表示操作,第 $ i $ 行包含添加第 $ i $ 个顶点的操作说明
每行的第一个数字为整数 $ k (0 ≤ k ≤ i - 1) $之后是 $ 2k $ 空格分隔的整数: $v1, x1, v2, x2, ... , vk, xk. (1 ≤ vj ≤ i - 1, |xj| ≤ 10^9) $。
保证所有操作的总和 $ k $ 不超过 $ 10^5 $ ,同时保证添加顶点的操作不会导致环和重边。
输出格式
一行一个整数表示图中所有边的权重之和,模数为$ 1000000007 (10^9 + 7) $。
输入输出样例
输入#1
6 0 0 1 2 1 2 1 5 2 2 1 1 2 1 3 4
输出#1
30
输入#2
5 0 1 1 5 0 0 2 3 1 4 3
输出#2
9
输入解题思路,AI测评打分。不知道怎么写?