数据结构实验之图论六:村村通公路【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;
}
数据结构实验之图论六:村村通公路【Prim算法】(SDUT 3362)的更多相关文章
- SDUT 3362 数据结构实验之图论六:村村通公路
数据结构实验之图论六:村村通公路 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 当前农村公 ...
- SDUT OJ 数据结构实验之图论六:村村通公路(最小生成树)
数据结构实验之图论六:村村通公路 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descri ...
- SDUT-3362_村村通公路
数据结构实验之图论六:村村通公路 Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 当前农村公路建设正如火如荼的展开,某乡 ...
- 数据结构实验之图论七:驴友计划 ( 最短路径 Dijkstra 算法 )
数据结构实验之图论七:驴友计划 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Probl ...
- SDUT 3363 数据结构实验之图论七:驴友计划
数据结构实验之图论七:驴友计划 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 做为一个资深 ...
- SDUT 3345 数据结构实验之二叉树六:哈夫曼编码
数据结构实验之二叉树六:哈夫曼编码 Time Limit: 1000MS Memory Limit: 65536KB Submit Statistic Problem Description 字符的编 ...
- SDUT OJ 数据结构实验之图论十:判断给定图是否存在合法拓扑序列
数据结构实验之图论十:判断给定图是否存在合法拓扑序列 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Prob ...
- SDUT OJ 数据结构实验之图论八:欧拉回路
数据结构实验之图论八:欧拉回路 Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss Problem Descrip ...
- SDUT OJ 数据结构实验之图论五:从起始点到目标点的最短步数(BFS)
数据结构实验之图论五:从起始点到目标点的最短步数(BFS) Time Limit: 1000 ms Memory Limit: 65536 KiB Submit Statistic Discuss P ...
随机推荐
- jdk 8 特性
date相关: 1.在jdk 8之前,由于Date,Calendar的烂设计(烂的原因:日期计算复杂,Date没有时区),催生了一个优秀的第三方时间框架:Joda-Time(解决了:日期的计算,时区) ...
- 使用 react 的 hooks 进行全局的状态管理
使用 react 的 hooks 进行全局的状态管理 React 最新正式版已经支持了 Hooks API,先快速过一下新的 API 和大概的用法. // useState,简单粗暴,setState ...
- idea 控制台 彩色打印日志
IDEA右上角:Edit Configurations,点击,找到VM options,填入-Dspring.output.ansi.enabled=ALWAYS. 重新启动应用,就会发现控制台日志变 ...
- SQL Server2008数据库报错与解决方法
一. 报错信息 启动MSSQLSERVER时有以下报错信息 打开SQL SERVER配置管理器,发现以下情况报错: 原因:由于先前安装了2005版VS,然后又安装了2015版VS 解决办法:卸载Loc ...
- GIL与线程进程小知识点
一 .GIL全局解释器 GIL是一个互斥锁:保证数据的安全(以牺牲效率来换取数据的安全)阻止同一个进程内多个线程同时执行(不能并行但是能够实现并发)并发:看起来像同时进行的GIL全局解释器存在的原因是 ...
- Java内存模型之从JMM角度分析DCL
DCL,即Double Check Lock,中卫双重检查锁定.其实DCL很多人在单例模式中用过,LZ面试人的时候也要他们写过,但是有很多人都会写错.他们为什么会写错呢?其错误根源在哪里?有什么解决方 ...
- ext TreePanel树节点操作
1.全部展开 tree.expandAll();2.全部收缩 tree.collapseAll();3.得到父节点 node.parentNode4.判断是否有父节点 node.parentNode= ...
- CSS选取第一个、最后一个、偶数、奇数、第n个标签元素
1.first-child first-child表示选择列表中的第一个标签.例如:li:first-child{background:#fff} 2.last-child last-child表示选 ...
- 无限重启:windows更新之后,在输入密码页面无限重启进入不了系统
解决办法:windows更新之后,在输入密码页面无限重启 总体思路:进入安全模式(如何进入,下文将讲述) --> 点击疑难解答 --> 点击高级选项 --> 点击启 ...
- csv注入复现代码
以下代码生成的csv文件,使用Microsoft Execl能成功弹出计算器,虽然打开时有安全提示,但是大多数src还是会接收该类漏洞 -------------------------------- ...