atcoder#ARC115F. [ARC115F] Migration

[ARC115F] Migration

题目描述

N N 頂点の木が与えられます。頂点には 1, ,N 1,\ \ldots,N の番号がついており、i i 番目の辺は頂点 ui u_i と頂点 vi v_i をつないでいます。また、頂点 i i には整数 hi h_i が書かれています。
駒が K K 個あり、i i 番目の駒ははじめ頂点 si s_i に置かれています。あなたはこれから「一つ駒を選び、それが現在置かれている頂点に隣接するいずれかの頂点に移動させる」という操作を繰り返します。 各駒 i i が頂点 ti t_i に置かれている状態になったら操作を終了します。各駒 i i を頂点 si s_i から頂点 ti t_i へ最短経路で移動させる必要はありません
ある駒の配置に対して、それぞれの駒が置かれている頂点に書かれた整数を足し合わせた値をポテンシャルと呼ぶことにします。ただし、同じ頂点に複数の駒がある場合、その頂点の整数はその駒の個数だけ足し合わせるものとします。
操作を通してのポテンシャルの最大値は最小でいくつになるか求めてください。ただし、はじめの状態と終わりの状態も考えるものとします。

输入格式

入力は以下の形式で標準入力から与えられる。

N N h1 h_1 h2 h_2 \ldots hN h_N u1 u_1 v1 v_1 u2 u_2 v2 v_2 : : uN1 u_{N-1} vN1 v_{N-1} K K s1 s_1 t1 t_1 s2 s_2 t2 t_2 : : sK s_K tK t_K

输出格式

答えを出力せよ。

题目大意

给定一个有 N N 个顶点的树。顶点编号为 1, ,N 1,\ \ldots,N ,第 i i 条边连接了顶点 ui u_i 和顶点 vi v_i 。另外,每个顶点 i i 上都写着一个整数 hi h_i
K K 个棋子,第 i i 个棋子最初放在顶点 si s_i 上。你接下来要重复以下操作:「选择一个棋子,将它从当前所在的顶点移动到与之相邻的任意一个顶点上」。当每个棋子 i i 都放在顶点 ti t_i 上时,操作结束。每个棋子 i i 不一定要沿着从顶点 si s_i 到顶点 ti t_i 的最短路径移动。
对于一个状态,我们称所有棋子所在的顶点上写着的整数之和为潜能。如果同一个顶点上有多个棋子,那么这个顶点上的整数要按照棋子的个数累加
求出操作过程中潜能的最大值的最小可能值是多少。注意,要考虑初始状态和结束状态

3
1 3 2
1 2
2 3
2
1 3
3 1
4
7
100 101 1 100 101 1 1000
1 2
2 3
4 5
5 6
1 7
4 7
2
1 3
4 6
201
5
2 1 100 5 6
1 2
2 3
3 4
3 5
2
2 2
4 5
101
4
1 2 3 100
1 4
2 4
3 4
9
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
115
6
1 100 1 1 10 1000
1 2
2 3
4 5
1 6
4 6
3
1 3
5 5
5 5
102

提示

制約

  • 1  N,K  2000 1\ \leq\ N,K\ \leq\ 2000
  • 1  ui,vi  N 1\ \leq\ u_i,v_i\ \leq\ N
  • 1  hi  109 1\ \leq\ h_i\ \leq\ 10^9
  • 1  si,ti  N 1\ \leq\ s_i,t_i\ \leq\ N
  • 与えられるグラフは木

Sample Explanation 1

以下のように操作をすることで操作を通してのポテンシャルの最大値は 4 4 となります。 - はじめ、ポテンシャルは 3 3 。 - 駒 2 2 を頂点 2 2 に移動させる。ポテンシャルは 4 4 になる。 - 駒 2 2 を頂点 1 1 に移動させる。ポテンシャルは 2 2 になる。 - 駒 1 1 を頂点 2 2 に移動させる。ポテンシャルは 4 4 になる。 - 駒 1 1 を頂点 3 3 に移動させる。ポテンシャルは 3 3 になる。 ポテンシャルの最大値が 4 4 より小さくなるような操作の方法は存在しないため、4 4 が答えです。