博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
最小生成树板子
阅读量:6416 次
发布时间:2019-06-23

本文共 1455 字,大约阅读时间需要 4 分钟。

kruskal算法:

#include
#include
#include
using namespace std;struct Node{ int a,b,val; friend bool operator < (const Node& x,const Node& y){ return x.val< y.val; //对于sort重载的话,从小到大用小于号 }}load[1000];int sum=0;int n,m;int fa[1000];int cnt=0;int Find(int a){ return fa[a]==a ? a : fa[a]=Find(fa[a]);}void init(int a,int b){ fa[Find(b)]=Find(a);}void kruskal(){ for(int i=0;i
>n>>m; for(int i=0;i
>load[i].a>>load[i].b>>load[i].val; } for(int i=1;i<=n;i++){ fa[i]=i; } sort(load,load+m); kruskal(); cout<
<

 

prim算法

 

#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;struct Node{ int d,len; friend bool operator < (const Node& a,const Node& b){ return a.len > b.len; //对于优先队列,从小到大排序用大于号 }};int n,m;int cnt,sum;int vis[1000];vector < Node > v[1000];priority_queue< Node > q;void prim(){ vis[1]=1; for(int i=0;i
>m>>n){ if(m==0) break; cnt=sum=0; while(!q.empty()){ q.pop(); } for(int i=0;i<=n;i++){ v[i].clear(); } memset(vis,0,sizeof(vis)); for(int i=0;i
>x>>y>>z; Node tmp; tmp.d=y; tmp.len=z; v[x].push_back(tmp); tmp.d=x; v[y].push_back(tmp); } prim(); if(cnt==n-1){ cout<
<

 

转载于:https://www.cnblogs.com/ISGuXing/p/10572369.html

你可能感兴趣的文章
Java 8 Stream
查看>>
Android6 0新应用权限管理机制详解
查看>>
leetCode 6 ZigZag Conversion
查看>>
作为一位Java架构师需要点亮的那些技能树
查看>>
一个行为标准Popup组件(vue), 强大的过度动画支持, 和定位支持
查看>>
移动端适配知识你到底知多少
查看>>
Java基础笔记16
查看>>
TiDB 在 G7 的实践和未来
查看>>
重新认识javascript对象(三)——原型及原型链
查看>>
Java Memory Model文档资源整理
查看>>
小学生学“数学”
查看>>
Dubbo下一站:Apache顶级项目
查看>>
数据库实验3 数据定义语言DDL
查看>>
【Vue】组件使用之参数校验
查看>>
FastDFS蛋疼的集群和负载均衡(十七)之解决LVS+Keepalived遇到的问题
查看>>
深入剖析Redis系列(二) - Redis哨兵模式与高可用集群
查看>>
上班第一天的BUG居然是chrome翻译功能导致的
查看>>
Android 用于校验集合参数的小封装
查看>>
iOS混合开发库(GICXMLLayout)七、JavaScript篇
查看>>
instrument 调试 无法指出问题代码 解决
查看>>