ZOJ1203 Swordfish
来源:互联网 发布:淘宝掌柜好评回复评语 编辑:程序博客网 时间:2024/05/25 08:13
/*prim算法,网上资料很多,在此不赘述*/#include<stdio.h>#include<stdlib.h>#include<string.h>#include<math.h>int n;bool visit[111];double low[111];double distance[111][111];void prim(int num){int i, cnt = 0;for(i = 0; i < n; i++){if(visit[i])cnt++;}if(cnt == n)return;double min = 99999999;for(i = 0; i < n; i++){if(!visit[i])low[i] = low[i] > distance[num][i] ? distance[num][i] : low[i];}for(i = 0; i < n; i++){if(!visit[i]){if(min > low[i]){min = low[i];num = i;}}}visit[num] = 1;prim(num);return;}int main(void){int i, j, cas = 0;double min;double xy[111][2];while(scanf("%d", &n), n){min = 0;memset(visit, 0, sizeof visit);memset(low, 0, sizeof low);memset(distance, 0, sizeof distance);for(i = 0; i < n; i++)scanf("%lf%lf", &xy[i][0], &xy[i][1]);for(i = 0; i < n; i++){for(j = 0; j < n; j++)distance[i][j] = sqrt((xy[i][0] - xy[j][0]) * (xy[i][0] - xy[j][0]) + (xy[i][1] - xy[j][1]) * (xy[i][1] - xy[j][1]));}visit[0] = 1;for(i = 0; i < n; i++)low[i] = distance[0][i];prim(0);for(i = 0; i < n; i++)min += low[i];if(cas)printf("\n");printf("Case #%d:\nThe minimal distance is: %.2lf\n", ++cas, min);}}
0 0
- ZOJ1203 Swordfish
- ZOJ1203 Swordfish
- zoj1203-Swordfish(Kruskal实现)
- zoj1203-Swordfish(prim实现)
- ZOJ1203(最小生成树kruskal算法)Swordfish
- zoj1203
- zoj1203
- Swordfish
- Swordfish
- [水]ZOJ1203
- 1203 Swordfish
- zoj_1203 Swordfish
- ZOJ 1203 Swordfish ( prim )
- zoj 1203 Swordfish(Prim!)
- zoj 1203 Swordfish【prim】
- Prim zoj 1203 Swordfish
- zoj - 1203 - Swordfish
- zoj 1203 Swordfish
- displaytag与exetremetable的学习
- UITabBarController的简单使用和属性方法总结
- 管理1
- UltraEdit 中文显示错误的解决方法(绝对有效!!!!)
- NSURL 基本方法 absoluteString
- ZOJ1203 Swordfish
- linux下交叉编译提示/lib/libz.so.1: no version information available
- scikit学习心得——Concatenating multiple feature extraction methods
- php中strstr、strrchr、substr、stristr四个函数的区别总结
- Linux系统图形界面和命令行界面之间的切换
- Iometer 使用界限值
- 01 netty介绍
- Nginx初探
- com 注册表信息