#CF1394D. 波波牛与江湖
波波牛与江湖
D. 波波牛与江湖
时间限制:每个测试点 秒
内存限制: MB
波波牛建好他的江湖之后,每天都在这些山上练功。
他为他的 座山设计了一张地图。他用 条道路将所有 座山连接起来。每对山之间都通过道路相连。
对于第 座山,波波牛估计了在山顶练功的疲劳值为 。他还估计了每座山的高度为 。
一条路径是一个山的序列 ,使得对每个 ,存在一条连接 和 的道路。如果对于每个 都有 ,波波牛就认为这条路径是一个挑战。
波波牛想把所有 条道路分成若干条挑战。注意每条道路必须恰好出现在一个挑战中,但一座山可以出现在多个挑战中。
波波牛希望最小化完成所有挑战的总疲劳值。一个挑战 的疲劳值是其包含的所有山的疲劳值之和,即 。
他请你找出最小的总疲劳值。作为回报,你将获得成为他江湖守护者的资格。
输入
第一行一个整数 ,表示山的数量。
第二行 个整数 ,表示每座山的疲劳值。
第三行 个整数 ,表示每座山的高度。
接下来 行,每行两个整数 ,表示一条道路的两端。保证所有山通过道路连通。
输出
一个整数:所有挑战的最小总疲劳值。
样例
输入 #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
注释
对于第一个样例:
图中颜色越浅的山越高。一种最优划分是:
挑战 :
挑战 :
总疲劳值为 。可以证明这是最小的总疲劳值。