博客
关于我
7-10 公路村村通
阅读量:317 次
发布时间:2019-03-04

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

题目链接:

题目描述:

现有村落间道路的统计数据表中,列出了有可能建设成标准公路的若干条道路的成本,求使每个村落都有公路连通所需要的最低成本。

输入格式:

输入数据包括城镇数目正整数N(≤1000)和候选道路数目M(≤3N);随后的M行对应M条道路,每行给出3个正整数,分别是该条道路直接连通的两个城镇的编号以及该道路改建的预算成本。为简单起见,城镇从1到N编号。

输出格式:

输出村村通需要的最低成本。如果输入数据不足以保证畅通,则输出−1,表示需要建设更多公路。

输入样例:

6 15
1 2 5
1 3 3
1 4 7
1 5 4
1 6 2
2 3 4
2 4 6
2 5 2
2 6 6
3 4 6
3 5 1
3 6 1
4 5 10
4 6 8
5 6 3

输出样例:

12

样例示意图:

在这里插入图片描述
将输入数据按照关键字cost进行升序排序。
在这里插入图片描述
村村通的最小生成树。

题目思路:最小生成树的求解。

kruskal算法参考代码

#include 
#include
int n,m;int sum=0,count=0;int parent[1001];struct node{ int A; int B; int cost;}a[3001];/*并查集之初始化操作*/void init(){ int i; for(i=1;i<=n;i++) parent[i]=i;}/*并查集之查找根节点操作*/int find(int x){ if(x==parent[x]) return x; else return parent[x]=find(parent[x]);}/*qsort()比较函数*/int cmp(const void *a,const void *b){ struct node* pa=(struct node*)a; struct node* pb=(struct node*)b; int num1=pa->cost; int num2=pb->cost; return num1-num2;}/*将边按权值排好序后,如果加入该边不构成回路,则将该边加入图中。*/void kruskal(){ int i; for(i=0;i

prim算法求解:

#include 
#include
#define INF 65535int n,m;int map[1001][1001];int visited[1001];int dist[1001];void init(){ int i,j; for(i=1;i<=n;i++) { for(j=1;j<=n;j++) map[i][j]=INF; }}int prim(int s){ memset(visited,0,sizeof(visited)); int i,j,sum=0; for(i=1;i<=n;i++) dist[i]=map[s][i]; visited[s]=1; for(i=1;i
map[pos][j]) dist[j]=map[pos][j]; } } for(i=1;i<=n;i++) { sum+=dist[i]; if(dist[i]==INF) return -1; } return sum;}int main(){ scanf("%d%d",&n,&m); int i,x,y,z; for(i=0;i

转载地址:http://izrq.baihongyu.com/

你可能感兴趣的文章
查询某表格上次进行vacuum的时间
查看>>
invalid byte sequence for encoding
查看>>
Highgo Database故障收集脚本
查看>>
failed to initialize the database
查看>>
invalid byte sequence for encoding
查看>>
银河麒麟系统配置apt网络源
查看>>
第七周 4.12-4.18
查看>>
程序设计入门14 结构体
查看>>
程序设计基础75 tips 广度搜索细节问题
查看>>
笨办法学python之数据类型
查看>>
笨办法学Python之将对象名的字符串类型,转化成相应对象
查看>>
ArduPilot源码极速下载手册(一文告别github慢速问题)
查看>>
聊一聊那些应该了解的大佬(飞控,人工智能方向)
查看>>
ArduPilot+mavros+gazebo+QGC联合仿真初体验
查看>>
px4调试bug--添加mavlink_log_info信息
查看>>
redis替换字符串命令
查看>>
redis向数组中添加值并查看数组长度
查看>>
python3基础梳理11python中模块和包
查看>>
JS编写一个函数,计算三个不同数字的大小,按从小到大顺序打印(穷举法)
查看>>
mybatis中like的注意
查看>>