#8219. 距离 (distance)

0
    ID: 8219 传统题 文件IO:distance 5000ms 512MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>CSP-S模拟暑期集训2024暑期CSP-S连测第3套CSP1127

距离 (distance)

题目描述

小 Z 和 小 Y 收到了一颗漂亮的树,由 nn 个节点构成,编号 1,2,⋯ ,n1,2,\cdots,n ,其中 11 号节点是树的根。

我们称节点 uu 是节点 vv 的祖先,当且仅当 uu 在 vv 到根的路径上(注意这里每个节点都是自己的祖先)。

我们定义 subtreeusubtree_u 表示 uu 的子树里的点集,也就是所有以 uu 为祖先的节点集。

现在小 Z 给了每个节点 ii 一个权值 aia_i ,小 Y 给了每个节点 ii 一个权值 bib_i 。

我们定义一个节点 uu 的价值为

$$ans_u=\sum_{x\in subtree_u}\sum_{y\in subtree_u} \min\{|a_x-a_y|,|b_x-b_y|\} \mod 10^9+7$$

请你对每个节点 uu 求出其价值 ansuans_u 。

输入格式

从 distance.in 文件读入数据。

第一行一个整数,代表树上的节点个数 nn 。

接下来 n−1n-1 行,每行两个整数 ui,vi(1≤ui,vi≤n,ui≠vi)u_i, v_i (1\le u_i,v_i\le n, u_i \neq v_i) ,代表树上的一条边连接节点 uiu_i 和节点 viv_i 。保证输入的所有边构成了一棵树。

接下来 nn 行,每行两个整数 ai,bia_i,b_i ,代表第 ii 个节点的两个权值。

输出格式

输出到 distance.out 文件。

共 nn 行,第 ii 行一个整数,表示 ansians_i。

样例

5
1 2
1 3
2 4
2 5
9 5
2 8
7 1
4 3
6 6
44
12
0
0
0

样例 2

点击链接 ex_distance2.in 和 ex_distance2.out 下载大样例 2 的输入数据和输出数据。

数据范围

对于 20%20\% 的测试点,保证 1≤n≤10,1≤ai,bi≤1091\le n\le 10,1\le a_i,b_i\le 10^9 。

对于另外 20%20\% 的测试点,保证 1≤n≤100,1≤ai,bi≤1091\le n\le 100,1\le a_i,b_i\le 10^9 。

对于另外 30%30\% 的测试点,保证 1≤n≤5000,1≤ai,bi≤1091\le n\le 5000,1\le a_i,b_i\le 10^9 。

对于剩下 30%30\% 的测试点,保证 1≤n≤5×105,1≤ai,bi≤1091\le n\le 5\times 10^5,1\le a_i,b_i\le 10^9。