镖局的运镖,就是运货(类似现在的物流)。镖局每到一个新地方开展业务,都需要对运镖途中的绿林好汉进行打点。好说话的打点费就比较低,不好说话的打点费就比较高。龙门镖局现在有一趟镖请你来规划路线,已知城市的地图,你需要选择一些道路进行疏通,以便镖局可以到达任意一个城市,要求花费的银子越少越好。

输入格式:

第一行有两个数n和m,n表示有n个城市(编号从1到n),m表示有m条道路。接下来m行,每行形如“a b c”用来表示一条道路,意思是城市a到城市b连通且打点需要花费的银子数是c。

输出格式:

若通过打点能抵达所有城市,则输出最少需要花费的银子总数。若不能抵达所有的城市则输出“impossible”。

输入样例:

3 3
1 2 1
1 3 2
2 3 4

输出样例:

3

kruskal算法是通过加边来建立最小生成树

prim算法通过加点来建立最小生成树

ac代码

#include<iostream>
#include<algorithm>
using namespace std;int n,m;
struct road{int a,b,cost;
}r[1001];
int f[1001];
int Find(int n){if(f[n]==n) return n;else return f[n] = Find(f[n]);
}
void Union(int x,int y)
{int a=Find(x),b=Find(y);if(a!=b) f[a]=b;
}
int cmp(road a,road b){return a.cost<b.cost;
}
void kruskal()
{for(int i=1;i<=n;i++){f[i]=i;}for(int i=0;i<m;i++)cin>>r[i].a>>r[i].b>>r[i].cost; sort(r,r+m,cmp);int sum = 0,t=0;for(int i=0;i<m;i++){if(t==n-1) break;if(Find(r[i].a)!=Find(r[i].b)){Union(r[i].a,r[i].b);t++;sum=sum+r[i].cost;}}if(t==n-1) cout<<sum;else cout<<"impossible";
}int main()
{cin>>n>>m;kruskal();return 0;
} 

镖局运镖(kruskal算法)相关推荐

  1. 镖局运镖(最小生成树 Kruskal)

    7-11 镖局运镖 (30 分) 镖局的运镖,就是运货(类似现在的物流).镖局每到一个新地方开展业务,都需要对运镖途中的绿林好汉进行打点.好说话的打点费就比较低,不好说话的打点费就比较高.龙门镖局现在 ...

  2. c语言编程镖局运镖,打点

    网页开发时,常常需要了解某个元素是否进入了"视口"(viewport),即用户能不能看到它. IntersectionObserver是浏览器原生提供的构造函数: import'i ...

  3. 数据结构与算法(7-3)最小生成树(普里姆(Prim)算法和克鲁斯卡尔(Kruskal)算法)

    目录 一.最小生成树简介 二.普里姆算法(Prim) 1.原理 2.存储 2-1.图顶点和权: 2-3. 最小生成树: 3.Prim()函数 3-1.新顶点入树 3-2.保留最小权 3-3. 找到最小 ...

  4. 基本数据结构(图: 基本结构,DFS,prim算法, kruskal算法)

    #include <iostream> using namespace std; //约定: //1. 图是由很多节点(VERTEX)构成的, 因此图结构是由一个VERTEX的链表构成的, ...

  5. Kruskal算法 - C语言详解

    最小生成树 在含有n个顶点的连通图中选择n-1条边,构成一棵极小连通子图,并使该连通子图中n-1条边上权值之和达到最小,则称其为连通网的最小生成树.  例如,对于如上图G4所示的连通网可以有多棵权值总 ...

  6. 【数据结构】最小生成树 Prim算法 Kruskal算法

    最小生成树应用场景: 假设以下场景,有一块木板,板上钉上一些钉子,这些钉子可以由一些细绳连接起来.假设每个钉子可以通过一根或者多根细绳连接起来,那么一定存在这样得情况,即用最少的细绳把所有的钉子连接起 ...

  7. ds图—最小生成树_Java: Kruskal算法生成最小生成树(邻接矩阵)

    Java: Kruskal算法生成最小生成树(邻接矩阵): package 输出: Kruskal=36: (E,F) (C,D) (D,E) (B,F) (E,G) (A,B) 分析: Java: ...

  8. 生成树的概念,最小生成树Prim算法 Kruskal算法

    求解最小生成树可以用Prim算法 Kruskal算法

  9. Kruskal算法构造最小生成树

    问题[描述算法问题,首选形式化方式(数学语言),其次才是非形式化方式(日常语言)] 在一给定的无向图G = (V, E) 中,(u, v) 代表连接顶点 u 与顶点 v 的边(即),而 w(u, v) ...

最新文章

  1. 【青少年编程(第25周)】隔离终于解除了!
  2. r语言必学的十个包肖凯_家长专栏自闭症儿童语言康复训练
  3. Linux 下禅道和 SVN、GIT 集成插件发布
  4. OpenKG 祝大家新春快乐
  5. jqgrid treegrid 重新加载数据
  6. 动画以及View绘制中的addview实战
  7. 一篇文章玩转世界最强音乐Spotify API操作
  8. 机器学习:过拟合问题与其正则化解决
  9. html中页面跳转以及传值的处理
  10. Python 树莓派 引脚
  11. 手机连接WiFi无法上网,原来是这两个原因,快速解决上网
  12. VR和AR的联系和区别
  13. 经纬能源安全稳定怎样理财收益最大?怎样理财才干收益最大?
  14. 2022年河北二级建造师建设工程施工管理《施工合同管理》练习及答案
  15. OpenCV中Viz模块的安装(VS2015)
  16. 从新东方讲师到AI框架工程师,我的历次职业转折|OneFlow U
  17. TCP通信 、 UDP通信
  18. 自动提取论文公式方法
  19. com.intellij.ide.plugins.PluginManager$StartupAbortedException
  20. Android设置屏幕保持长亮

热门文章

  1. python3面向对象学习
  2. 认证班丨AQF量化金融分析师认证班火热报名中
  3. 汽车诊断之UDS入门-0x19 0x03/ 0x04服务
  4. 科蒂斯控制器故障代码_科蒂斯控制器故障代码指示
  5. python turtle库画七彩蟒蛇_Python学习之turtle库和蟒蛇绘制程序
  6. Cocos2d-X 3.4版-怪物的AI《赵云要格斗》
  7. Adva、Ciena及诺基亚光网络业绩增长强劲
  8. SAP系统 查询供应商余额
  9. 学好单片机设计,关于晶振的这些难题一定要先搞懂!
  10. 如何获得CSM--敏捷教练证书