package Y2018;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/*
题目的背景:
John 的农场缺水!
题目描述:农民 John 决定将水引入到他的 n(1≤n≤300)个牧场。
他准备通过挖若干井,并在各块田中修筑水道来连通各块田地以供水。
在第 i 号田中挖一口井需要花费 W_(i 1≤W_i≤100000)元。
链接 i 号田与 j 号田需要P_ij(1≤P_ij≤100000,P_ji=P_ij)元。
请求出农民 John 需要为连通整个牧场的每一块田地所需要的钱数。
输入格式:
第 1 行为一个整数 n
第 2 行到 n+1 行每行一个整数,从上到下分别为 W_i 到 W_n。
第 n+2 到 2n+1 行为一个矩阵,表示需要的经费(P_ij)。
输出格式:
只有一行,为一个整数,表示所需要的钱数。
*/
public class Main {
private static int n;//农场数
private static int[] farm = new int[310];//农场费用
private static int[][] pipe = new int[310][310];//水管费用
private static boolean[] used = new boolean[310];//默认false,记录已经用过的点
private static List<Integer> points = new ArrayList<>();//存入已经用过的点
private static int minM = 0;//最小费
普里姆
最新推荐文章于 2023-06-17 13:25:05 发布
本文深入探讨了普里姆算法,一种用于找到图中最小生成树的经典算法。通过逐步构建最小生成树,该算法确保连接所有顶点的同时,权值总和达到最小。普里姆算法广泛应用于网络设计、交通规划等领域,有效解决资源优化问题。
摘要由CSDN通过智能技术生成