当前位置: 首页 > news >正文

做旅游计划的网站/百度快速收录办法

做旅游计划的网站,百度快速收录办法,中阔浩潮建设工程有限公司网站,ftp上传网站怎样构造最小生成树在大二上学期的离散数学中就已经学过了,我们当时就是使用的算法就是Kruskal算法。 Kruskal算法: Kruskal算法按照边的权值的顺序从小到大查看一遍,如果不产生圈,就把当前这条边加入到生成树中。其实就是贪心的…

怎样构造最小生成树在大二上学期的离散数学中就已经学过了,我们当时就是使用的算法就是Kruskal算法

Kruskal算法

Kruskal算法按照边的权值的顺序从小到大查看一遍,如果不产生圈,就把当前这条边加入到生成树中。其实就是贪心的一种思想。

这里我们就需要解决一个问题,怎样判断是否产生圈,那么就需要并查集的方法了。假设现在要把连接顶点u和顶点v的边e加入到生成树中。如果加入之前u和v不在一个集合中,那么加入e就不会产生圈,否则就会产生圈。
这里写图片描述
初始情况,各自独立


这里写图片描述
找到最小一条边,权值为1,判断结点2和3不在一个集合中,将结点2和3并到一个集合中集合状态为:{2,3}


这里写图片描述
找到第二小的边,权值为2,判断0和1不在一个集合中,将0和1并集集合状态为:{2,3} , {0,1}


这里写图片描述
找到第三小的边,权值为2,判断0和3不在一个集合中,则将0和3并集集合状态为:{0,1,2,3}


这里写图片描述
找到第四小的边,权值为3,发现1和2在一个集合里,则舍弃,同理第五小的边也舍弃。

完整代码如下:

#include<cstdio>
#include<algorithm>
using namespace std;
const int maxn = 10000;
struct edge{int u,v,cost; 
};/*按edge.cost的顺序从小到大排列*/
bool cmp(const edge& e1, const edge& e2)
{return e1.cost < e2.cost; 
}
edge es[maxn];
int V,E;
int par[maxn];/*建图*/
void build()
{scanf("%d%d",&V,&E);for(int i=0; i<E; i++){scanf("%d%d%d",&es[i].u,&es[i].v,&es[i].cost);}return;
}/*初始化并查集*/ 
void init_union_find(int V)
{for(int i=0 ;i<V; i++){par[i] = i;}return;
}/*找爹*/
int find(int x)
{int r = x;while(r!=par[r])r = par[r];int i = x;int j;while(i!=r){j = par[i];par[i] = r;i = j;} return r;
}/*判断是否有同一个爹*/
int same(int x, int y)
{return find(x)==find(y);
}/*将集合合并*/ 
void unite(int x, int y)
{if(same(x,y)){return;}else{par[find(x)] = find(y);}
}int kruskal()
{sort(es, es+E, cmp);init_union_find(V);int res = 0;for(int i=0; i<E; i++){edge e = es[i];if(!same(e.u, e.v)){unite(e.u, e.v);res += e.cost;}}return res;
} 
int main()
{build();printf("%d",kruskal());return 0; 
}

运行图:
这里写图片描述

http://www.jmfq.cn/news/4830373.html

相关文章:

  • 湖北阳新县建设局网站/百度百科怎么创建自己
  • 网站修改/网络营销有哪些推广平台
  • 韶关市建设工程造价网站/it培训四个月骗局
  • 服务器网站打开慢/站长之家app
  • 门户型网站建设方案/怎么样建网站
  • 机械公司网站源码/今日国际军事新闻头条
  • 做网赚类网站违法吗/seo外包方法
  • 高端网站开发找哪家好/西安网站制作价格
  • python做网站教程/百度广告推广怎么做
  • 医程通 网站做的太/百度推广一天烧多少钱
  • 做网站价格 网络推广托管服务/好推建站
  • 建站abc平台/站长之家是什么
  • 网站建设好不好/百度贴吧官网入口
  • wordpress访问多站点/wifi优化大师下载
  • dede鲜花网站模板下载/google官网进入
  • 常用网站建设技术/高端建站
  • 怎么修改网站上的内容/百度投广告怎么收费
  • 网页制作报价/移动建站优化
  • 陕西做网站的公司在哪/网推项目
  • Wordpress付费主题排名/手机seo百度点击软件
  • 做网站用的什么编程语言/陕西百度推广的代理商
  • 怎么做公司招聘网站/天津抖音seo
  • wordpress弹窗登录注册插件/seo站长论坛
  • 地方门户信息网站建设方案/推广注册app拿佣金平台
  • 做网站的调研报告/市场营销毕业论文5000字
  • 北京网站建设排行/培训seo哪家学校好
  • 搜索网站建设推广优化/专业的seo外包公司
  • 营销型网站模板下载/网站更换服务器对seo的影响
  • 公司网站需要在公安局备案吗/哈尔滨百度公司地址
  • 淘宝做网站建设靠谱吗/营销推广主要包括