这是一个贪心问题,可以通过以下步骤解决:

  1. 关键发现:对于每种药剂,我们只需要考虑两种方案:直接购买红色版本,花费 用其他两种红色药剂配置蓝色版本,花费 选择这两种方案中花费较小的即可
  2. 贪心策略:对于第 i 种药剂,比较:直接购买的花费 配置的花费 (u和v是配方中指定的两种药剂)选择较小值作为获得这种药剂的花费
  3. 具体步骤:读入所有药剂的价格和配方遍历每种药剂,计算获得该药剂的最小花费将所有药剂的最小花费相加得到答案
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);
    }
}