CF960E.Alternating Tree
提高+/省选-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
Given a tree with n nodes numbered from 1 to n. Each node i has an associated value Vi.
If the simple path from u1 to um consists of m nodes namely u1→u2→u3→…um−1→um, then its alternating function A(u1,um) is defined as A(u1,um)=i=1∑m(−1)i+1⋅Vui. A path can also have 0 edges, i.e. u1=um.
Compute the sum of alternating functions of all unique simple paths. Note that the paths are directed: two paths are considered different if the starting vertices differ or the ending vertices differ. The answer may be large so compute it modulo 109+7.
给定一棵包含 n 个节点的树,节点编号为 1 到 n。每个节点 i 关联一个值 Vi。
若从 u1 到 um 的简单路径由 m 个节点组成,即 u1→u2→u3→⋯→um−1→um,则该路径的交替函数 A(u1,um) 定义为
A(u1,um)=i=1∑m(−1)i+1⋅Vui.
路径也可以包含 0 条边,即 u1=um。
请计算所有不同的简单路径的交替函数之和。注意:路径是有向的——若两条路径的起点不同或终点不同,则视为不同路径。答案可能很大,请对 109+7 取模。
输入格式
The first line contains an integer n (2≤n≤2⋅105) — the number of vertices in the tree.
The second line contains n space-separated integers V1,V2,…,Vn (−109≤Vi≤109) — values of the nodes.
The next n−1 lines each contain two space-separated integers u and v (1≤u,v≤ n,u=v) denoting an edge between vertices u and v. It is guaranteed that the given graph is a tree.
第一行包含一个整数 n(2≤n≤2⋅105)——树中顶点的数量。
第二行包含 n 个用空格分隔的整数 V1,V2,…,Vn(−109≤Vi≤109)——各节点的值。
接下来的 n−1 行,每行包含两个用空格分隔的整数 u 和 v(1≤u,v≤ n,u=v),表示顶点 u 与 v 之间存在一条边。保证所给图是一棵树。
输出格式
Print the total sum of alternating functions of all unique simple paths modulo 109+7.
输出所有唯一简单路径的交替函数的总和对 109+7 取模的结果。
输入输出样例
输入#1
4 -4 1 5 -2 1 2 1 3 1 4
输出#1
40
输入#2
8 -2 6 -4 -4 -9 -3 -7 23 8 2 2 3 1 4 6 5 7 6 4 7 5 8
输出#2
4
说明/提示
Consider the first example.
A simple path from node 1 to node 2: 1→2 has alternating function equal to A(1,2)=1⋅(−4)+(−1)⋅1=−5.
A simple path from node 1 to node 3: 1→3 has alternating function equal to A(1,3)=1⋅(−4)+(−1)⋅5=−9.
A simple path from node 2 to node 4: 2→1→4 has alternating function A(2,4)=1⋅(1)+(−1)⋅(−4)+1⋅(−2)=3.
A simple path from node 1 to node 1 has a single node 1, so A(1,1)=1⋅(−4)=−4.
Similarly, A(2,1)=5, A(3,1)=9, A(4,2)=3, A(1,4)=−2, A(4,1)=2, A(2,2)=1, A(3,3)=5, A(4,4)=−2, A(3,4)=7, A(4,3)=7, A(2,3)=10, A(3,2)=10. So the answer is (−5)+(−9)+3+(−4)+5+9+3+(−2)+2+1+5+(−2)+7+7+10+10=40.
Similarly A(1,4)=−2,A(2,2)=1,A(2,1)=5,A(2,3)=10,A(3,3)=5,A(3,1)=9,A(3,2)=10,A(3,4)=7,A(4,4)=−2,A(4,1)=2,A(4,2)=3,A(4,3)=7 which sums upto 40.
考虑第一个例子。
从节点 1 到节点 2 的一条简单路径:1→2,其交替函数值为 A(1,2)=1⋅(−4)+(−1)⋅1=−5。
从节点 1 到节点 3 的一条简单路径:1→3,其交替函数值为 A(1,3)=1⋅(−4)+(−1)⋅5=−9。
从节点 2 到节点 4 的一条简单路径:2→1→4,其交替函数值为 A(2,4)=1⋅(1)+(−1)⋅(−4)+1⋅(−2)=3。
从节点 1 到节点 1 的一条简单路径仅含单个节点 1,因此 A(1,1)=1⋅(−4)=−4。
类似地,A(2,1)=5,A(3,1)=9,A(4,2)=3,A(1,4)=−2,A(4,1)=2,A(2,2)=1,A(3,3)=5,A(4,4)=−2,A(3,4)=7,A(4,3)=7,A(2,3)=10,A(3,2)=10。因此答案为 (−5)+(−9)+3+(−4)+5+9+3+(−2)+2+1+5+(−2)+7+7+10+10=40。
类似地,A(1,4)=−2, A(2,2)=1, A(2,1)=5, A(2,3)=10, A(3,3)=5, A(3,1)=9, A(3,2)=10, A(3,4)=7, A(4,4)=−2, A(4,1)=2, A(4,2)=3, A(4,3)=7,其和也为 40。
输入解题思路,AI测评打分。不知道怎么写?