7-1 镖局运镖 (30分)
镖局的运镖,就是运货(类似现在的物流)。镖局每到一个新地方开展业务,都需要对运镖途中的绿林好汉进行打点。好说话的打点费就比较低,不好说话的打点费就比较高。龙门镖局现在有一趟镖请你来规划路线,已知城市的地图,你需要选择一些道路进行疏通,以便镖局可以到达任意一个城市,要求花费的银子越少越好。
输入格式:
第一行有两个数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分)相关推荐
- 7-13 镖局运镖 (10 分)
7-13 镖局运镖 (10 分) 镖局的运镖,就是运货(类似现在的物流).镖局每到一个新地方开展业务,都需要对运镖途中的绿林好汉进行打点.好说话的打点费就比较低,不好说话的打点费就比较高.龙门镖局现在 ...
- 镖局运镖(最小生成树 Kruskal)
7-11 镖局运镖 (30 分) 镖局的运镖,就是运货(类似现在的物流).镖局每到一个新地方开展业务,都需要对运镖途中的绿林好汉进行打点.好说话的打点费就比较低,不好说话的打点费就比较高.龙门镖局现在 ...
- c语言编程镖局运镖,打点
网页开发时,常常需要了解某个元素是否进入了"视口"(viewport),即用户能不能看到它. IntersectionObserver是浏览器原生提供的构造函数: import'i ...
- 3分和30分文章差距在哪里?
好的分析和可视化,可以提供大量的信息,同时兼顾简洁优雅. 今天我们抛开实验设计.方法和工作量等因素,仅从文章最吸引人的图片来讨论3分和30分(顶级)文章差距在哪里? 以2017年8月25日发表在Sci ...
- 微生物组:3分和30分文章差距在哪里?
好的分析和可视化,可以提供大量的信息,同时兼顾简洁优雅. 今天我们抛开实验设计.方法和工作量等因素,仅从文章最吸引人的图片来讨论3分和30分(顶级)文章差距在哪里? 以2017年8月25日发表在Sci ...
- PAT甲级1038 Recover the Smallest Number (30 分):[C++题解]贪心、排列成最小的数、字符串
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 贪心: 对于字符串a和b,如果 a+b < b+a (这里+代表字符串中的连接)代表字典序更小.举例 a = 321 , b ...
- PAT甲级1147 Heaps (30 分):[C++题解]堆、树的遍历、dfs、完全二叉树建树
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析:给定完全二叉树,判断是否是堆,需要区分大根堆,小根堆.后面是输出后序遍历. AC代码 #include<bits/stdc++. ...
- PAT甲级1076 Forwards on Weibo (30 分) :[C++题解]图论、bfs
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: BFS如何搜前k层?统计前k层的点数. ac代码 #include<bits/stdc++.h> using names ...
- PAT甲级1072 Gas Station (30 分):[C++题解]dijkstra算法、最短路
文章目录 题目分析 题目来源 题目分析 来源:acwing 分析: 所有的dist[ ]都≤Ds:最小的dist[ ]最大; dist[ ] 总和最大. 由于加油站是字符,为了简单起见,将m个加油站编 ...
最新文章
- PTA 基础编程题目集 6-8 简单阶乘计算 C语言
- muduo:高效整型转换为字符串
- codeforces contest 1119
- Psych101(part1)--Day1
- python语言中list和tuple有什么区别_python之list与tuple的区别
- centos mysql 5.6.19_Centos 6.3将Mysql 5.1.61升级为mysql 5.6.19遇到的问题及解决方式
- 一个游戏大量合服代表什么_一个女人哭了代表什么?这几点帮你分析
- 简述直方图和柱形图的区别_如何区分直方图与柱形图
- Integer的比较
- tx2 ubuntu 修改屏幕分辨率
- python生成一组符合正态分布的数据_使用Numpy生成正态分布数据
- 自我评价中专计算机600作文,中专生毕业的自我评价(精选5篇)
- shell脚本俄罗斯方块小游戏
- 决策树之CART(分类回归树)详解
- 网络攻防技术——XSS实验
- 使用微博自动记录俯卧撑个数
- ORA-01034 ORACLE not available
- 小猫踢足球-第14届蓝桥杯STEMA测评Scratch真题精选
- Flink sql:Table sink doesn‘t support consuming update and delete changes which is produced by node
- python绘制气象等值线图_气象要素场等值线图自动绘制