CF1485E.Move and Swap

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given n1n - 1 integers a2,,ana_2, \dots, a_n and a tree with nn vertices rooted at vertex 11 . The leaves are all at the same distance dd from the root.

Recall that a tree is a connected undirected graph without cycles. The distance between two vertices is the number of edges on the simple path between them. All non-root vertices with degree 11 are leaves. If vertices ss and ff are connected by an edge and the distance of ff from the root is greater than the distance of ss from the root, then ff is called a child of ss .

Initially, there are a red coin and a blue coin on the vertex 11 . Let rr be the vertex where the red coin is and let bb be the vertex where the blue coin is. You should make dd moves. A move consists of three steps:

  • Move the red coin to any child of rr .
  • Move the blue coin to any vertex bb' such that dist(1,b)=dist(1,b)+1dist(1, b') = dist(1, b) + 1 . Here dist(x,y)dist(x, y) indicates the length of the simple path between xx and yy . Note that bb and bb' are not necessarily connected by an edge.
  • You can optionally swap the two coins (or skip this step).

Note that rr and bb can be equal at any time, and there is no number written on the root.

After each move, you gain arab|a_r - a_b| points. What's the maximum number of points you can gain after dd moves?

输入格式

The first line contains a single integer tt ( 1t1041 \le t \le 10^4 ) — the number of test cases.

The first line of each test case contains a single integer nn ( 2n21052 \leq n \leq 2 \cdot 10^5 ) — the number of vertices in the tree.

The second line of each test case contains n1n-1 integers v2,v3,,vnv_2, v_3, \dots, v_n ( 1vin1 \leq v_i \leq n , viiv_i \neq i ) — the ii -th of them indicates that there is an edge between vertices ii and viv_i . It is guaranteed, that these edges form a tree.

The third line of each test case contains n1n-1 integers a2,,ana_2, \dots, a_n ( 1ai1091 \leq a_i \leq 10^9 ) — the numbers written on the vertices.

It is guaranteed that the sum of nn for all test cases does not exceed 21052 \cdot 10^5 .

输出格式

For each test case, print a single integer: the maximum number of points you can gain after dd moves.

输入输出样例

  • 输入#1

    4
    14
    1 1 1 2 3 4 4 5 5 6 7 8 8
    2 3 7 7 6 9 5 9 7 3 6 6 5
    6
    1 2 2 3 4
    32 78 69 5 41
    15
    1 15 1 10 4 9 11 2 4 1 8 6 10 11
    62 13 12 43 39 65 42 86 25 38 19 19 43 62
    15
    11 2 7 6 9 8 10 1 1 1 5 3 15 2
    50 19 30 35 9 45 13 24 8 44 16 26 10 40

    输出#1

    14
    45
    163
    123

说明/提示

In the first test case, an optimal solution is to:

  • move 11 : r=4r = 4 , b=2b = 2 ; no swap;
  • move 22 : r=7r = 7 , b=6b = 6 ; swap (after it r=6r = 6 , b=7b = 7 );
  • move 33 : r=11r = 11 , b=9b = 9 ; no swap.

The total number of points is 72+69+39=14|7 - 2| + |6 - 9| + |3 - 9| = 14 .

In the second test case, an optimal solution is to:

  • move 11 : r=2r = 2 , b=2b = 2 ; no swap;
  • move 22 : r=3r = 3 , b=4b = 4 ; no swap;
  • move 33 : r=5r = 5 , b=6b = 6 ; no swap.

The total number of points is 3232+7869+541=45|32 - 32| + |78 - 69| + |5 - 41| = 45 .

首页