poj2031 连接所有的球,让连接的线段和最小。
来源:互联网 发布:3d教学软件 编辑:程序博客网 时间:2024/05/29 16:09
//poj2031 连接所有的球,让连接的线段和最小。 //记录所有两个球之间的线段。 最小生成树 #include <iostream>#include <string>#include <cmath>#include <iomanip>using namespace std;double inf = 10000;double x[105], y[105], z[105], r[105];double weight[105][105]; double dist[105];bool mark[105];double sum;double compute(int m, int n){double xx = (x[m] - x[n]) * (x[m] - x[n]);double yy = (y[m] - y[n]) * (y[m] - y[n]);double zz = (z[m] - z[n]) * (z[m] - z[n]);double dis = 0;dis += sqrt(xx + yy + zz);dis -= (r[m] + r[n]);return dis;}double prime(int n){dist[0] = 0;mark[0] = true;//初始化距离表 for(int i = 1; i < n; i++){dist[i] = weight[0][i];} for(int i = 1; i < n; i++){//寻找距离党组织最近的点 double min1 = inf;int minIndex = -1;for(int j = 1; j < n; j++){if(!mark[j] && dist[j] < min1){min1 = dist[j];minIndex = j;}}//加入党组织,更新距离表 sum += dist[minIndex];dist[minIndex] = 0;mark[minIndex] = true;for(int j = 1; j < n; j++){if(!mark[j])dist[j] = (weight[minIndex][j] < dist[j])?weight[minIndex][j]:dist[j];}}return sum;}int main(){int n;cin>>n;while(n){sum = 0;for(int i = 0; i < n; i++){dist[i] = inf;for(int j = 0; j < n; j++){weight[i][j] = inf;weight[j][i] = inf;}}memset(mark, 0, sizeof(mark)); for(int i = 0; i < n; i++) weight[i][i] = 0; for(int i = 0; i < n; i++){cin>>x[i]>>y[i]>>z[i]>>r[i];if(i != 0){for(int j = 0; j < i; j++){double temp = compute(j, i);if(temp < 0)weight[j][i] = 0;else weight[j][i] = temp; weight[i][j] = weight[j][i];}}}cout<<fixed<<setprecision(3)<<prime(n)<<endl;cin>>n;}return 0;}
0 0
- poj2031 连接所有的球,让连接的线段和最小。
- poj2031 Building a Space Station 三维空间的最小生成树
- 断开所有的数据连接
- 断开数据库的所有连接
- 让连接不停的变色
- CHtmlView获取网页所有元素的连接和名字
- 查看所有的连接信息、当前连接数、查看和修改数据库允许的最大连接数
- windows7 vpn和宽带连接出现错误651,所有设备都已连接的问题解决办法
- 查询指定数据库的当前连接数和关闭指定数据库的所有连接
- hdu5253 连接的管道 最小生成树水题
- 连接的管道(最小生成树)
- SQLServer下Kill 所有连接到某一数据库的连接
- 让所有连接都弹出新窗口
- 强行断开指定数据库的所有连接
- java与数据库的所有连接方式
- C#抓取网页上的所有连接
- 断开这个数据库的所有连接
- 获取当前网页的所有连接
- 递归算法浅析
- WCF简单教程(1) 入门
- 数据的存储
- 互联网思维:关系
- android 好的开源项目地址
- poj2031 连接所有的球,让连接的线段和最小。
- CTreeCtrl 控件使用总结
- hihocoder第十一周树中的最长路
- 浮点型变量在计算机内存中的存储格式
- 汉字编码在Unicode区间
- 10976 - Fractions Again?!
- 《Python核心编程》第三章练习解析
- 框架中为何要定义DTO
- LabVIEW之生产者/消费者模式--队列操作