zoj1203
来源:互联网 发布:淘宝网儿童保护电插头 编辑:程序博客网 时间:2024/05/25 05:36
zoj网站上不去了
写了代码也还没来得及测试
隐约觉得应该会有问题
不过目前测试的数据还是对的。。。
#include<iostream>#include<math.h>#include<algorithm>using namespace std;const int N = 100;int n,v[N+2],x;double s,r[N+2][2];struct dis{double n1;double n2;double d;}m[N*N];bool cmp(dis a,dis b){return a.d<b.d;}int Dis(){int i = 0, j = 0, k = 0;for (i = 1; i < n; i++){for (j = i + 1; j <= n; j++){m[k].n1 = i;m[k].n2 = j;m[k].d = sqrt((r[i][0] - r[j][0])*(r[i][0] - r[j][0]) + (r[i][1] - r[j][1])*(r[i][1] - r[j][1]));k++;}}return k;}void input(){int i = 0;for (i = 0; i < n; i++){scanf_s("%lf %lf", &r[i][0], &r[i][1]);//cin >> r[i][0] >> r[i][1];}}void mintree(int x1,int x2,int i){x1 = v[x1];x2 = v[x2];if (x1 == x2){if (!x1){v[x1]--;v[x2] = x1;s = s + m[i].d;x++;}}else{if (x1*x2){v[x1] = v[x1] + v[x2];v[x2] = x1;s = s + m[i].d; x++;}else{if (x1){v[x1]--;v[x2] = x1;s = s + m[i].d; x++;}else{v[x2]--;v[x1] = x2;s = s + m[i].d; x++;}}}}int find(int mm){if (v[mm] > 0){while (v[mm] > 0){mm = v[mm];}}return mm;}int main(){int i=0,x1=0,x2=0,k=0,t=1;while (scanf_s("%d",&n)&&n)//cin>>n{input();k=Dis(); sort(m,m+k,cmp);while (x != n - 1){x1 = find(m[i].n1);x2 = find(m[i].n2);mintree(x1,x2,i);i++;}printf( "Case #%d:\n",t);printf("The minimal distance is:%.2lf", s);x = 0; i = 0; s = 0; t++;}system("pause");return 0;}
阅读全文
0 0
- zoj1203
- zoj1203
- [水]ZOJ1203
- ZOJ1203 Swordfish
- ZOJ1203 Swordfish
- zoj1203-Swordfish(Kruskal实现)
- zoj1203-Swordfish(prim实现)
- ZOJ1203 kruskal求最小生成树
- ZOJ1203(最小生成树kruskal算法)Swordfish
- [最小生成树入门专题1] zoj1203 E
- 打印楼梯,同时在楼梯上方打印两个笑脸
- C++随记(三)---动态分配内存问题(2)
- 基于STM32wifi小车制作(五)-基本完工
- 5月26日,每日20行。
- 循环神经网络(RNN, Recurrent Neural Networks)介绍
- zoj1203
- 1.1 Getting the Source Tree
- Java中的static详解
- sdut-离散题目9
- 分布式系统概述(来自学习资料)
- MacOS下MySQL 乱码问题解决方法
- 1.1 获取源代码树
- 读书笔记《Effective C++》条款36:绝不重新定义继承而来的non-virtual函数
- 网站异常发送异常代码到邮箱