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

输入格式:
第一行有两个数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

#include<stdio.h>
#include<stdlib.h>
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(const void *a,const void *b)
{struct road *c=(struct road *)a;struct road *d=(struct road *)b;if(c->cost!=d->cost)return d->cost<c->cost;
}
void kruskal()
{int i;for(i=1;i<=n;i++){f[i]=i;}for(i=0;i<m;i++)scanf("%d %d %d",&r[i].a,&r[i].b,&r[i].cost);qsort(&r[0],m,sizeof(r[0]),cmp);int sum = 0,t=0;for(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) printf("%d",sum);else printf("impossible");
}int main()
{scanf("%d %d",&n,&m);kruskal();return 0;
}

7-1 镖局运镖 (30分)相关推荐

  1. 7-13 镖局运镖 (10 分)

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

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

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

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

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

  4. 3分和30分文章差距在哪里?

    好的分析和可视化,可以提供大量的信息,同时兼顾简洁优雅. 今天我们抛开实验设计.方法和工作量等因素,仅从文章最吸引人的图片来讨论3分和30分(顶级)文章差距在哪里? 以2017年8月25日发表在Sci ...

  5. 微生物组:3分和30分文章差距在哪里?

    好的分析和可视化,可以提供大量的信息,同时兼顾简洁优雅. 今天我们抛开实验设计.方法和工作量等因素,仅从文章最吸引人的图片来讨论3分和30分(顶级)文章差距在哪里? 以2017年8月25日发表在Sci ...

  6. PAT甲级1038 Recover the Smallest Number (30 分):[C++题解]贪心、排列成最小的数、字符串

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 贪心: 对于字符串a和b,如果 a+b < b+a (这里+代表字符串中的连接)代表字典序更小.举例 a = 321 , b ...

  7. PAT甲级1147 Heaps (30 分):[C++题解]堆、树的遍历、dfs、完全二叉树建树

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:给定完全二叉树,判断是否是堆,需要区分大根堆,小根堆.后面是输出后序遍历. AC代码 #include<bits/stdc++. ...

  8. PAT甲级1076 Forwards on Weibo (30 分) :[C++题解]图论、bfs

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: BFS如何搜前k层?统计前k层的点数. ac代码 #include<bits/stdc++.h> using names ...

  9. PAT甲级1072 Gas Station (30 分):[C++题解]dijkstra算法、最短路

    文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 所有的dist[ ]都≤Ds:最小的dist[ ]最大; dist[ ] 总和最大. 由于加油站是字符,为了简单起见,将m个加油站编 ...

最新文章

  1. PTA 基础编程题目集 6-8 简单阶乘计算 C语言
  2. muduo:高效整型转换为字符串
  3. codeforces contest 1119
  4. Psych101(part1)--Day1
  5. python语言中list和tuple有什么区别_python之list与tuple的区别
  6. centos mysql 5.6.19_Centos 6.3将Mysql 5.1.61升级为mysql 5.6.19遇到的问题及解决方式
  7. 一个游戏大量合服代表什么_一个女人哭了代表什么?这几点帮你分析
  8. 简述直方图和柱形图的区别_如何区分直方图与柱形图
  9. Integer的比较
  10. tx2 ubuntu 修改屏幕分辨率
  11. python生成一组符合正态分布的数据_使用Numpy生成正态分布数据
  12. 自我评价中专计算机600作文,中专生毕业的自我评价(精选5篇)
  13. shell脚本俄罗斯方块小游戏
  14. 决策树之CART(分类回归树)详解
  15. 网络攻防技术——XSS实验
  16. 使用微博自动记录俯卧撑个数
  17. ORA-01034 ORACLE not available
  18. 小猫踢足球-第14届蓝桥杯STEMA测评Scratch真题精选
  19. Flink sql:Table sink doesn‘t support consuming update and delete changes which is produced by node
  20. python绘制气象等值线图_气象要素场等值线图自动绘制

热门文章

  1. 几何观止(经典几何对象)
  2. linux系统管理与服务器配置高志君_CDIO教材——Linux系统应用与服务器配置
  3. UOS应用商店微信(windows版)无法使用的解决办法
  4. vorwerk 机器人_福维克(Vorwerk)--吸尘器行业的安利
  5. GPIO驱动分析 GPIO使用方法--S5PC110和S5PC210
  6. mysql数据库基础管理
  7. c语言列车调度 栈,算法:列车调度(Train)
  8. 2020年,数字化转型的策略和趋势
  9. 简约资源网源码 可做下载站或资源站
  10. 早报20220727