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)root( v_1 ) 到顶点$ i $的边,权重为 $depth( v_1 ) + x_1 $;从顶点 root(v2)root( v2 ) 到顶点$ i $的边,权重为 $ depth( v2 ) +  x2 $ ,以此类推。如果 $ k=0 $,那么图中只增加了顶点 $ i $ ,没有增加任何边。

现给定添加的顶点,请计算森林所有边的权重之和。由于数据可能很大,请将输出的数据模 10000000071000000007 (109+7)(10^9 + 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测评打分。不知道怎么写?

首页