- 关键发现:对于每种药剂,我们只需要考虑两种方案:直接购买红色版本,花费 用其他两种红色药剂配置蓝色版本,花费 选择这两种方案中花费较小的即可
- 贪心策略:对于第 i 种药剂,比较:直接购买的花费 配置的花费 (u和v是配方中指定的两种药剂)选择较小值作为获得这种药剂的花费
- 具体步骤:读入所有药剂的价格和配方遍历每种药剂,计算获得该药剂的最小花费将所有药剂的最小花费相加得到答案
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] a = new int[n + 1];
for (int i = 1; i <= n; i++) {
a[i] = sc.nextInt();
}
int ans = 0;
for (int i = 1; i <= n; i++) {
int u = sc.nextInt();
int v = sc.nextInt();
ans += Math.min(a[i], a[u] + a[v]);
}
System.out.println(ans);
}
}