#CF1394D. 波波牛与江湖

波波牛与江湖

D. 波波牛与江湖
时间限制:每个测试点 11
内存限制:256256 MB

波波牛建好他的江湖之后,每天都在这些山上练功。

他为他的 nn 座山设计了一张地图。他用 n1n-1 条道路将所有 nn 座山连接起来。每对山之间都通过道路相连。

对于第 ii 座山,波波牛估计了在山顶练功的疲劳值为 tit_i。他还估计了每座山的高度为 hih_i

一条路径是一个山的序列 MM,使得对每个 i (1i<M)i\ (1 \le i < |M|),存在一条连接 MiM_iMi+1M_{i+1} 的道路。如果对于每个 i (1i<M)i\ (1 \le i < |M|) 都有 hMihMi+1h_{M_i} \le h_{M_{i+1}},波波牛就认为这条路径是一个挑战

波波牛想把所有 n1n-1 条道路分成若干条挑战。注意每条道路必须恰好出现在一个挑战中,但一座山可以出现在多个挑战中。

波波牛希望最小化完成所有挑战的总疲劳值。一个挑战 MM 的疲劳值是其包含的所有山的疲劳值之和,即 i=1MtMi\sum_{i=1}^{|M|} t_{M_i}

他请你找出最小的总疲劳值。作为回报,你将获得成为他江湖守护者的资格。

输入
第一行一个整数 n (2n2105)n\ (2 \le n \le 2 \cdot 10^5),表示山的数量。
第二行 nn 个整数 t1,t2,,tn (1ti106)t_1, t_2, \dots, t_n\ (1 \le t_i \le 10^6),表示每座山的疲劳值。
第三行 nn 个整数 h1,h2,,hn (1hi106)h_1, h_2, \dots, h_n\ (1 \le h_i \le 10^6),表示每座山的高度。
接下来 n1n-1 行,每行两个整数 ui,vi (1ui,vin,uivi)u_i, v_i\ (1 \le u_i, v_i \le n, u_i \ne v_i),表示一条道路的两端。保证所有山通过道路连通。

输出
一个整数:所有挑战的最小总疲劳值。

样例

输入 #1

5
40 10 30 50 20
2 3 2 3 1
1 2
1 3
2 4
2 5

输出 #1

160

输入 #2

5
1000000 1 1 1 1
1000000 1 1 1 1
1 2
1 3
1 4
1 5

输出 #2

4000004

输入 #3

10
510916 760492 684704 32545 484888 933975 116895 77095 127679 989957
402815 705067 705067 705067 623759 103335 749243 138306 138306 844737
1 2
3 2
4 3
1 5
6 4
6 7
8 7
8 9
9 10

输出 #3

6390572

注释
对于第一个样例:
图中颜色越浅的山越高。一种最优划分是:
挑战 113123 \to 1 \to 2
挑战 225245 \to 2 \to 4
总疲劳值为 (30+40+10)+(20+10+50)=160(30+40+10)+(20+10+50)=160。可以证明这是最小的总疲劳值。