poj 1258 最小生成树(普里姆算法)
2012-06-14 19:46
183 查看
import java.util.Scanner; public class Test1258 { static int n = 0; static int[][] array = null; static int[] result = null; static boolean[] visited = null; static boolean b = true; public static void main(String[] args) throws Exception { Scanner scan = new Scanner(System.in); n = scan.nextInt(); array = new int ; visited = new boolean ; result = new int ; for (int i = 0; i < array.length; i++) { for (int j = 0; j < array[i].length; j++) { array[i][j] = scan.nextInt(); if (b) { result[j] = array[i][j]; } } b = false; } while (n > 0) { visited[0] = true; min(min(result)); n--; } int sum = 0; for(int i=0;i<result.length; i++) { sum += result[i]; } System.out.println(sum); } public static int min(int[] result) { int min = 0; int lie = 0; for (int i = 0; i < result.length; i++) { if (result[i] != 0 && visited[i] == false) { min = result[i]; lie = i; break; } } for (int i = 0; i < result.length; i++) { if (result[i] != 0 && visited[i] == false) { if (min > result[i]) { min = result[i]; lie = i; } } } if (lie != 0) { visited[lie] = true; } return lie; } public static void min(int count) { int row = count; for (int i = 1; i < result.length; i++) { if (visited[i] == false && array[row][i] != 0) { if (result[i] == 0) { result[i] = array[row][i]; } else if (result[i] > array[row][i]) { result[i] = array[row][i]; } } } } }
相关文章推荐
- poj 1258 Agri-Net(最小生成树,普里姆算法)
- poj 1258 Agri-Net(prim求最小生成树)
- 最小生成树模板(POJ 1258-prime+HDU 1233 Kruskal为例)
- poj 1251 1258 2421 2485(最小生成树prime)
- poj 1258 并查集的基本应用 最小生成树
- POJ 1258 Agri-Net(最小生成树prim算法)
- poj 1258 小白算法练习 Agri-Net 最小生成树 prim kruskal
- poj 1258(最小生成树)
- [ACM] poj 1258 Agri-Net (最小生成树)
- POJ 1258 Agri-Net (prim 最小生成树)
- poj 1258 Agri-Net 【最小生成树-Kruskal】
- poj 1251 Jungle Roads(最小生成树,普里姆算法)
- POJ 1258 - Agri-Net(最小生成树)
- POJ 1258 Agri-Net 最小生成树
- POJ 1258 Agri-Net(最小生成树 Kruskal)
- POJ 1258 Agri-Net 最小生成树
- poj 1258 Agri-Net(prim求最小生成树)
- POJ-1258-Agri-Net [最小生成树]
- 各种最小生成树。 HDU 1863 HDU 1301 POJ 1258
- 【POJ 1258】Agri-Net(最小生成树-水题)