题意:有几个村庄,要修最短的路,使得这几个村庄连通。但是现在已经有了几条路,求在已有路径上还要修至少多长的路。

分析:用Prim求最小生成树,将已有路径的长度置为0,由于0是最小的长度,所以一定会被Prim选中加入最小生成树。

package Map;import java.util.Scanner;/*** Prime*/
public class Poj_2421_Prim {static int MAXVEX = 200;static int n, m;static int[][] arc = new int[MAXVEX][MAXVEX];static int visited[] = new int[MAXVEX];//判断是否加入生成树public static int prime() {int min, i, j, k, sum = 0;visited[1] = 1;for (i = 2; i <= n; i++) {min = 1000000;k = 0;for (j = 1; j <= n; j++) {if (visited[j] == 0 && arc[1][j] < min) {min = arc[1][j];k = j;}}sum += min;visited[k] = 1;for (j = 1; j <= n; j++) {if (visited[j] == 0 && arc[1][j] > arc[k][j]) {arc[1][j] = arc[k][j];}}}return sum;}public static void main(String args[]) {Scanner sc = new Scanner(System.in);n = sc.nextInt();for (int i = 1; i <= n; i++) {for (int j = 1; j <= n; j++) {arc[i][j] = sc.nextInt();}arc[i][i] = 1000000;}m = sc.nextInt();//如果路径存在,则置为0.这样for (int i = 1; i <= m; i++) {int s = sc.nextInt();int e = sc.nextInt();arc[s][e] = 0;arc[e][s] = 0;}System.out.println(prime());}
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

转载于:https://www.cnblogs.com/AndyDai/p/4734093.html

Poj 2421 Constructing Roads(Prim 最小生成树)相关推荐

  1. poj 2421 Constructing Roads

    #include<iostream> //最小生成树primusing namespace std;const int max_ve=105,MaxWeight=2000;int n,ed ...

  2. POJ 2421 Constructing Roads MST kruskal

    最近刚学的并查集所以用kruskal来试试最小生成树~ kruskal其实用几句话就能说完~  1.贪心所有边的权值,从小到大取值 2.取值时~将边权非0的两个顶点~进行并查操作~如果两个点的祖先不同 ...

  3. HDOJ1102 Constructing Roads【最小生成树】-----武科大ACM暑期集训队选拔赛1题

    这道题目没有做出来,代码写好之后一直没有AC,本以为做了这么多最小生成树的题目,这道题一定没问题的,结果很遗憾,没有注意细节问题: 首先,如何处理已经建好的路?已经建好的路说明这两个点是连通的,只要把 ...

  4. 【HDU - 1102】Constructing Roads (最小生成树裸题模板)

    题干: There are N villages, which are numbered from 1 to N, and you should build some roads such that ...

  5. 22.12.14补卡 Constructing Roads POJ - 2421

    Constructing Roads - POJ 2421 - Virtual Judge 只有输入有点小坑 只有上三角的数据是有用的, 下三角的数据与上三角重复, 可不处理, 把i>=j的全部 ...

  6. HDU1102 Constructing Roads 最小生成树

    点击打开链接 Online Judge Online Exercise Online Teaching Online Contests Exercise Author F.A.Q Hand In Ha ...

  7. prim最小生成树算法原理

    prim 最小生成树算法原理 主要需要了解算法的原理.算法复杂度.优缺点 .刻画和度量指标 评价等 可以查阅相关的文献,这部分内容主要整合了两篇博客的内容 分别是:http://blog.csdn.n ...

  8. 技术图文:如何利用C# 实现 Prim 最小生成树算法?

    背景 我们上一篇图文介绍了 如何利用 C# 实现 Kruskal 最小生成树算法?,Kruskal 算法通过寻找边最优的方式来构造最小生成树,本篇图文介绍如何利用 C# 实现 Prim 最小生成树算法 ...

  9. HDU 1301 Jungle Roads(裸最小生成树)

    题目链接 今天做了好几个模版最小生成树...贴一个kurskral. 1 /* 2 HDU 1301 Jungle Roads 3 最小生成树Kurskal模版 4 */ 5 #include < ...

  10. 数据结构---prim最小生成树

    数据结构-prim最小生成树 原理:参考趣学数据结构 代码: #include<stdio.h> #include<stdlib.h> #define N 100 #defin ...

最新文章

  1. 将服务器置于最终用户附近可解决性能问题?—Vecloud微云
  2. golang string 转换 uint64_Golang 的 #x27;print#x27; 源码解读
  3. boost::gil::for_each_pixel用法的测试程序
  4. oracle账户解锁28000,oracle 下载 账号密码ORA-28000账户被锁和解锁
  5. 【Java】灵活使用自定义注解和反射
  6. 2017.4.21 2^k进制数 思考记录
  7. Mysql学习总结(48)——MySql的日志与备份还原
  8. Android Studio3.2经常用的一些依赖(以后再加)
  9. 看完尤雨溪338条知乎回答后,我突然找到了前进的方向
  10. opencv+resize+padding+concate
  11. ICE Tester method viewer 的安装和使用,和客制化代码配合使用
  12. MOQL-复杂事件处理(CEP)
  13. Chapter 1 : MySQL体系结构和搜索引擎
  14. 顺序栈的基本操作(超详细)
  15. Typora下载、安装及使用
  16. FPGA高斯滤波实现并Modelsim仿真,与MATLAB高斯滤波进行对比
  17. 通过蓝牙连接进行ActiveSync同步
  18. IIS的ISAPI接口
  19. 使用FFmpeg视频缩略图实现
  20. 2012考研数学二第(4)题——定积分比较大小

热门文章

  1. Makefile中变量赋值方式
  2. 为什么需要注册中心?是用 Eureka 还是 Nacos?
  3. 同学,你要的SpringBoot多图片上传回显功能已经实现了,赶紧收藏吃灰~
  4. 查询提升 200 倍,ClickHouse 你值得拥有!
  5. 它又又又来了,Fastjson 最新高危漏洞来袭!快升级吧
  6. 基于netty实现socketio的聊天室
  7. 30岁前,一定要完成哪些人生规划?
  8. AndroidDeveloper Weekly NO.4
  9. django -- 分页功能
  10. TortoiseSVN文件夹操作