CF1394D Boboniu and Jianghu

题目描述

自从 Boboniu 建立了他的江湖后,他每天都在这些山上练习功夫。 Boboniu 为他的 $n$ 座山设计了一张地图。他用 $n-1$ 条道路将所有 $n$ 座山连接起来。任意两座山之间都可以通过道路连通。 对于第 $i$ 座山,Boboniu 估算在山顶练功的疲劳度为 $t_i$。他还估算了每座山的高度 $h_i$。 一条路径是一个山峰序列 $M$,满足对于每个 $i$($1 \le i < |M|$),$M_i$ 和 $M_{i+1}$ 之间有一条道路。Boboniu 会将一条路径视为一次挑战,如果对于每个 $i$($1 \le i < |M|$),都有 $h_{M_i} \le h_{M_{i+1}}$。 Boboniu 想要将所有 $n-1$ 条道路划分为若干次挑战。注意,每条道路必须且只能出现在一次挑战中,但一座山可以出现在多次挑战中。 Boboniu 希望使完成所有挑战的总疲劳度最小。一次挑战 $M$ 的疲劳度为该路径上所有山的疲劳度之和,即 $\sum_{i=1}^{|M|} t_{M_i}$。 他请你帮他计算最小的总疲劳度。作为回报,你将成为他江湖中的守护者。

输入格式

第一行包含一个整数 $n$($2 \le n \le 2 \cdot 10^5$),表示山的数量。 第二行包含 $n$ 个整数 $t_1, t_2, \ldots, t_n$($1 \le t_i \le 10^6$),表示在每座山顶练功的疲劳度。 第三行包含 $n$ 个整数 $h_1, h_2, \ldots, h_n$($1 \le h_i \le 10^6$),表示每座山的高度。 接下来的 $n-1$ 行,每行包含两个整数 $u_i, v_i$($1 \le u_i, v_i \le n, u_i \neq v_i$),表示一条道路连接的两座山。保证所有山通过道路连通。

输出格式

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

说明/提示

对于第一个样例: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1394D/6d7c9860b48141348a65d76336aec032250a8094.png) 在图中,点越亮表示山越高。最优划分之一为: - 挑战 $1$:$3 \to 1 \to 2$ - 挑战 $2$:$5 \to 2 \to 4$ Boboniu 的总疲劳度为 $(30 + 40 + 10) + (20 + 10 + 50) = 160$。可以证明这是最小的总疲劳度。 由 ChatGPT 4.1 翻译