首页 > 其他分享 >图论 MST(最小生成树) prim

图论 MST(最小生成树) prim

时间:2024-10-15 11:48:34浏览次数:7  
标签:图论 prim int MST mp const 1010

#include <bits/stdc++.h>
using namespace std;
const int P = 1e6 + 7;
const int inf = 1e9;
typedef long long ll;
int mp[1010][1010];
int n, m;
int d[1010];//从已选点到i的min权值
int vis[1010];//选或没选
void prim()
{
	for (int i = 1; i <= n; i++)
		d[i] = inf;
	d[1] = 0;
	//开始选1
	int ans = 0;
	for (int s = 1; s <= n; s++)
	{
		//选n个点
		int mi = inf; int id = -1;
		for (int i = 1; i <= n; i++)
		{
			if (d[i] < mi&&vis[i]==0)
			{
				mi = d[i];
				id = i;
			}
		}
		if (id == -1)
		{
			cout << -1; return;
		}
		ans += mi;
		vis[id] = 1;
		//更新d数组
		for (int i = 1; i <= n; i++)
		{
			if (vis[i] == 0 && mp[id][i] < d[i])
				d[i] = mp[id][i];
		}
	}
	cout << ans;
	return;
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	cin >> n >> m;

	//防止重边
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= n; j++)
		{
			mp[i][j] = inf;
		}
	}
	for (int i = 1; i <= m; i++)
	{
		int a, b, c;
		cin >> a >> b >> c;
		if(mp[a][b]>c)
			mp[a][b] = mp[b][a] = c;
	}
	prim();
	return 0;
}

标签:图论,prim,int,MST,mp,const,1010
From: https://www.cnblogs.com/ybjnb/p/18467137

相关文章

  • NOIP2024集训Day49 图论
    NOIP2024集训Day49图论A.[BZOJ2348中山市选2011]杀人游戏最优决策一定是我们找到一个点,使它能够尽可能到达更多的点,然后我们会发现必须询问的人缩点后就是入度为\(0\)的点。如果剩下了一个人,那么这个人是可以被推出来的。即:入度为\(0\)的点是一定要被询问的,如果存在一......
  • NOIP2024集训Day50 图论
    NOIP2024集训Day50图论A.[JSOI2012]越狱老虎桥先边双缩点,建出边双生成树。在不额外加边的情况下,割掉树边会使子树内部断开;在加入边的情况下,若加入一条\(1-u\)的边,则形成了一个\(1-u\)的环,环无法通过割一条边断开;而连接树上两个节点\((u,v)\)的情况,把图展开后发......
  • 一文带你了解生成树协议三个版本:STP、RSTP 和 MSTP
    生成树协议(SpanningTreeProtocol,STP)及其后续改进版,如快速生成树协议(RapidSpanningTreeProtocol,RSTP)和多生成树协议(MultipleSpanningTreeProtocol,MSTP),是保证网络冗余与稳定的关键技术。这些协议能够防止环路的出现,从而避免广播风暴和通信中断。本文将详细介绍STP、R......
  • NOI提高级 图论算法:单源次短路
    DIJ(单源次短路)-TwoPaths-HDU6181DIJ(单源次短路)-TwoPaths-HDU6181-CSDN博客单源次短路(P2829大逃离)单源次短路(P2829大逃离)-CSDN博客单源次短路算法学习笔记单源次短路算法学习笔记-Wiueh_Plus-博客园次短路及次短路计数次短路及次短路......
  • 静态库封装之ComStr类
    ComStr.h#pragmaonce#include<string>#include<vector>usingnamespacestd;classComStr{public: //CString //============================================================================================================= /* func:CS......
  • Camstar 电子套件基础数据导入导出Export/Import
    前提准备:你的共享目录CamstarUploads弄好了,参考https://www.cnblogs.com/CarryYou-lky/p/16133849.html     ......
  • 如果你在写图论 2 的 I 题,这里有一个实现的比较一般的交互库
    #include<bits/stdc++.h>//交互题什么的最讨厌了usingnamespacestd;usingllt=longlong;usingllf=longdouble;usingull=unsignedlonglong;mt19937rnd(ull(newchar)*ull(newchar));constintN=1e5+3;structGph{ inthd[N],to[N<<1],nt[N<<1],......
  • Camstar 在新db上快速搭建电子套件的内容
    1、前提:数据库创建、登录用户创建,参考https://www.cnblogs.com/CarryYou-lky/p/184541512、此时是一个空数据库,CamstarAP上的配置准备好:配置managementstudio完成,不用DataBase的Cretate和update,就配置好数据库连接就行  3、打开电子套件的安装包: 4、目录随意。注意:弹出......
  • Camstar Create Transaction Database
    sqlserverUSE[master]GO--CreatedatabaseCREATEDATABASEINSITEONPRIMARY(NAME='INSITE',FILENAME='C:\ProgramFiles\MicrosoftSQLServer\MSSQL13.MSSQLSERVER\MSSQL\DATA\INSITE.mdf',SIZE=100MB,FileGrowth=10%)LOGON(......
  • 【图论】迪杰特斯拉算法
    文章目录迪杰特斯拉算法主要特点基本思想算法步骤示例实现迪杰斯特拉算法基本步骤算法思路总结迪杰特斯拉算法迪杰特斯拉算法是由荷兰计算机科学家艾兹赫尔·迪杰特斯拉(EdsgerW.Dijkstra)在1956年提出的,用于解决单源最短路径问题的经典算法。该算法的目标是从一......