数据结构实验之图论六:村村通公路【Prim算法】(SDUT 3362)

题解:选点,选最小权的边,更新点权。可以手动自行找一遍怎么找到这个最小的生成树,随便选一个点放入我们选的集合中,然后看和这个点相连的点中,与那个点相连的那条边权值是最小的,选择之后,把相连的这个点一起放入集合中,这样的话集合中就多了一点,现在要找和这两个点都相连的点中,那个边的权最小,直到全部的点都在集合中就完成了。

#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int inf = 0x3fffff;
int gra[1005][1005];
int vis[1005];
int dist[1005];
void prim(int n)
{memset(vis,0,sizeof(vis));for(int i = 0; i <= n; i ++) dist[i] = gra[1][i];int Min = inf, v, flag = 1;for(int i = 1; i <= n; i ++){Min = inf;for(int j = 1; j <= n; j ++){if(!vis[j] && dist[j] < Min){Min = dist[j];v = j;}}if(Min == inf) {flag = 0;break;}vis[v] = 1;for(int j = 1; j <= n; j ++){if(!vis[j] && dist[j] > gra[v][j]){dist[j] = gra[v][j];}}}int ans = 0;for(int i = 1; i <= n;i ++){ans += dist[i];}if(flag)printf("%d\n",ans);else printf("-1\n");
}
int main()
{int n,m,u,v,w;while(~scanf("%d%d",&n,&m)){for(int i = 0; i<= n; i ++){for(int j = 0; j <= n; j ++){if(i == j) gra[i][j] = 0;else gra[i][j] = inf;}}for(int i = 0; i < m; i ++){scanf("%d%d%d",&u,&v,&w);gra[u][v] = gra[v][u] = w;}prim(n);}return 0;
}

 

转载于:https://www.cnblogs.com/lcchy/p/10139425.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/412711.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[css] CSS的伪类和伪对象有什么不同?

[css] CSS的伪类和伪对象有什么不同&#xff1f; 伪类是给当前选中节点添加新样式&#xff0c; 伪对象是给当前选中节点添加伪元素。 伪类选择器使用&#xff1a;&#xff0c;伪对象选择器使用&#xff1a;&#xff1a;&#xff0c;因为兼容旧版&#xff0c;所以伪对象使用&am…

PMP读书笔记(第2章)

大家好&#xff0c;我是烤鸭&#xff1a;     今天做一个PMP的读书笔记。 第二章 项目运行环境2.1 概述2.2 事业环境因素2.2.1 组织内部的事业环境因素2.2.2 组织外部的事业环境因素2.3 组织过程资产2.3.1 过程、政策和程序2.3.2 组织知识库2.4 组织系统2.4.1 概述2.4.2 组…

[css] CSS的overflow属性定义溢出元素内容区的内容会如何处理呢

[css] CSS的overflow属性定义溢出元素内容区的内容会如何处理呢 visible&#xff08;默认值&#xff09;&#xff1a;溢出的内容会照常显示在元素内容区之外&#xff1b;hidden&#xff1a;溢出的内容会被裁剪&#xff1b;scroll&#xff1a;溢出的内容会出现在滚动区&#xff…

do文件的编写(转)

以前在使用ModelSim进行仿真的时候&#xff0c;一直是使用其GUI进行操作的&#xff0c;但是这样很繁琐也很费时。故希望学习其自动化仿真do文件&#xff0c;下面是学习的一些总结。 一、编写基本的do文件 下面按照实际仿真的步骤来说明do文件中需要用到的各个tcl命令。 1、quit…

PMP读书笔记(第3章)

大家好&#xff0c;我是烤鸭&#xff1a;     今天做一个PMP的读书笔记。 第三章 项目经理的角色3.1 概述3.2 项目经理的定义3.3 项目经理的影响力范围3.3.1 概述3.3.2 项目3.3.3 组织3.3.4 行业3.3.5 专业学科3.3.6 跨领域3.4 项目经理的能力3.4.1 概述3.4.2 技术项目管理…

PMP读书笔记(第4章)

大家好&#xff0c;我是烤鸭&#xff1a;     今天做一个PMP的读书笔记。 第四章 项目整合管理概述项目整合管理的核心概念项目整合管理的发展趋势和新兴实践裁剪时需要考虑的因素在敏捷或适应型环境中需要考虑的因素4.1 制定项目章程4.1.1 制定项目章程&#xff1a;输入4.…

[css] 外层有一个自适应高度的div,里面有两个div,一个高度固定300px,另一个怎么填满剩余的高度?

[css] 外层有一个自适应高度的div&#xff0c;里面有两个div&#xff0c;一个高度固定300px&#xff0c;另一个怎么填满剩余的高度&#xff1f; 可以设置外层自适应高度的容器为flex布局&#xff0c;利用flex-basis属性即可实现自动填满剩余高度&#xff1b;代码如下&#xff…

vue之watch用法

watch是一个对象&#xff0c;键是需要观察的表达式&#xff0c;值是对应回调函数。值也可以是方法名&#xff0c;或者包含选项的对象 watch:{ //属性     msg: function(newVal,oldVal){console.log(oldVal改变成newVal)},  //函数msg1(newVal,oldVal){console.log(oldV…

PMP读书笔记(第5章)

大家好&#xff0c;我是烤鸭&#xff1a;     今天做一个PMP的读书笔记。 第五章 项目范围管理项目范围管理项目范围管理的核心概念项目范围管理的发展趋势和新兴实践裁剪时需要考虑的因素在敏捷或适应型环境中需要考虑的因素5.1 规划范围管理5.1.1 规划范围管理&#xff1…

[css] 说说你对CSS样式覆盖规则的理解

[css] 说说你对CSS样式覆盖规则的理解 1.选择器的权重覆盖&#xff1b; 2.相同选择器的顺序覆盖&#xff1b; 3.行内样式>内联样式>外联样式个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主…

特殊符号作用

单引号&#xff1a;保留括起的所有字符的字面值。取消多个字符的特殊含义双引号&#xff1a;$、反引号&#xff08;可替换成$()&#xff09;、反斜杠特殊含义保留下来&#xff0c;而其他特殊符号只保留字面值。取消多个字符的特殊含义\作为转义字符&#xff0c;仅取消单个字符的…

[css] 写出几个初始化CSS的样式,并解释说明为什么要这样写

[css] 写出几个初始化CSS的样式&#xff0c;并解释说明为什么要这样写 padding:0; margin:0;为了解决各个浏览器显示不一样的问题个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很容易&#xff0c; 但坚持一定很酷。欢迎大家一起讨论 主目录 与歌谣一起…

php中foreach循环遍历二维数组

最近在用tp3.2框架&#xff0c;在查询的时候用到了select()&#xff0c;这条语句返回的是二维数组&#xff0c;所以在对返回的数据做处理时&#xff0c;遇到了些麻烦&#xff0c;百度了下foreach&#xff0c;终于用foreach解决了数据的筛选问题 &#xff08;因为不知道该怎么设…

PMP读书笔记(第6章)

大家好&#xff0c;我是烤鸭&#xff1a;     今天做一个PMP的读书笔记。 第六章 项目进度管理项目进度管理项目进度管理的核心概念项目进度管理的发展趋势和新兴实践裁剪考虑因素关于敏捷/适应型环境的考虑因素6.1 规划进度管理6.1.1 规划进度管理&#xff1a;输入6.1.1.1…

[css] display有哪些值?分别说明他们的作用是什么?

[css] display有哪些值&#xff1f;分别说明他们的作用是什么&#xff1f; display:block/inline-block 给元素转块/转行内块 display:inline 把元素转成内联元素&#xff08;我很少用到&#xff09; display:none让元素消失&#xff0c;不显示 display:flex弹性布局 我常用的…

connect ECONNREFUSED 151.101.0.133:443 | spawn xxx ENOENT

大家好&#xff1a; 我是烤鸭&#xff0c;今天分享一个node项目打包失败的问题。 1. 问题复现 之前一直出现node项目打包失败的情况&#xff0c;使用测试环境的jenkins没问题&#xff0c;生产的有问题。基本可以排除代码层面的问题。 报错信息如图。另外说一下出现了 con…

Python(八) 函数、模块

函数 定义函数 1、意义&#xff1a;函数是实现某个功能的一些代码&#xff0c;提高代码的复用性。 2、定义:用def关键字定义函数&#xff0c; 3、函数组成&#xff1a;函数由函数名、形参、函数体、调用函数&#xff08;里面会有函数体&#xff09;组成 4、要使用函数&#xff…

[css] 怎么让body高度自适应屏幕?为什么?

[css] 怎么让body高度自适应屏幕&#xff1f;为什么&#xff1f; 为何只设置body{height&#xff1a;100%}不行&#xff1f; height&#xff1a;100%是相对于父元素来说的&#xff0c;如果只设置body的高度属性&#xff0c;由于其父元素是html高度未设置&#xff0c;且并非浏览…

PMP读书笔记(第7章)

大家好&#xff0c;我是烤鸭&#xff1a;     今天做一个PMP的读书笔记。 第七章 项目成本管理项目成本管理项目成本管理的核心概念项目成本管理的趋势和新兴实践裁剪考虑因素关于敏捷/适应型环境的考虑因素7.1 规划成本管理7.1.1 规划成本管理&#xff1a;输入7.1.1.1 项目…

[css] font-style的属性有Italic和oblique,两者有什么区别呢

[css] font-style的属性有Italic和oblique&#xff0c;两者有什么区别呢 italic和oblique都是向右倾斜的文字, 但区别在于Italic是指斜体字&#xff0c;而Oblique是倾斜的文字&#xff0c;对于没有斜体的字体应该使用Oblique属性值来实现倾斜的文字效果.个人简介 我是歌谣&am…