博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ZOJ-1203 Swordfish---最小生成树
阅读量:6568 次
发布时间:2019-06-24

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

题目链接:

题目大意:

给定平面上N个城市的位置,计算连接这N个城市所需线路长度总和的最小值。

思路:

模板题

最小生成树,Prim求解。注意两个城市之间都有一条边相连。还有每两组输出之间空一行。

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 using namespace std;11 typedef long long ll;12 const int maxn = 2e2 + 10;13 const int INF = 1 << 30;14 int dir[4][2] = { 1,0,0,1,-1,0,0,-1};15 int T, n, m;16 double Map[maxn][maxn];//存图17 double lowcost[maxn];18 int mst[maxn];19 void prim(int u)//最小生成树起点20 {21 double sum_mst = 0;//最小生成树权值22 for(int i = 1; i <= n; i++)//初始化两个数组23 {24 lowcost[i] = Map[u][i];25 mst[i] = u;26 }27 mst[u] = -1;//设置成-1表示已经加入mst28 for(int i = 1; i <= n; i++)29 {30 double minn = 1.0 * INF;31 int v = -1;32 //在lowcost数组中寻找未加入mst的最小值33 for(int j = 1; j <= n; j++)34 {35 if(mst[j] != -1 && lowcost[j] < minn)36 {37 v = j;38 minn = lowcost[j];39 }40 }41 if(v != -1)//v=-1表示未找到最小的边,42 { //v表示当前距离mst最短的点43 //printf("%d %d %d\n", mst[v], v, lowcost[v]);//输出路径44 mst[v] = -1;45 sum_mst += lowcost[v];46 for(int j = 1; j <= n; j++)//更新最短边47 {48 if(mst[j] != -1 && lowcost[j] > Map[v][j])49 {50 lowcost[j] = Map[v][j];51 mst[j] = v;52 }53 }54 }55 }56 //printf("weight of mst is %d\n", sum_mst);57 printf("The minimal distance is: %.2f\n", sum_mst);58 }59 double x[105], y[105];60 int cases;61 int main()62 {63 while(cin >> n && n)64 {65 if(cases)cout<
> x[i] >> y[i];67 for(int i = 1; i <= n; i++)68 {69 for(int j = 1; j <= n; j++)70 {71 Map[i][j] = sqrt((x[j] - x[i]) * (x[j] - x[i]) + (y[j] - y[i]) * (y[j] - y[i]));72 }73 }74 printf("Case #%d:\n", ++cases);75 prim(1);76 }77 return 0;78 }

 

转载于:https://www.cnblogs.com/fzl194/p/8724459.html

你可能感兴趣的文章
业务对象和BAPI
查看>>
微软职位内部推荐-Senior Software Engineer
查看>>
程序中的魔鬼数字
查看>>
session cookie
查看>>
$.extend({},defaults, options) --(初体验三)
查看>>
android 一步一步教你集成tinker(热修复)
查看>>
到底有多少内存
查看>>
centos7.3 安装ovirt-engine4.0 版本
查看>>
Openstack的环境的Mitaka部署环境服务,实例(1)
查看>>
文档的压缩与打包
查看>>
python3 在不同操作系统安装第三方库方法
查看>>
python编写登录接口
查看>>
MySQL高可用方案之多级复制
查看>>
OVS 中的各种网络设备 - 每天5分钟玩转 OpenStack(128)
查看>>
Trafficserver Cluster模式
查看>>
亚马逊推出 Blox,用于 EC2 容器服务的开源工具集合
查看>>
Linux:在中国没有真正的新闻
查看>>
iOS推送功能极光推送的介绍与实现
查看>>
单用户模式与grub加密
查看>>
Chromium Graphics: 3D上下文及其虚拟化 - Part I
查看>>