博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hdu 1162 Eddy's picture
阅读量:4987 次
发布时间:2019-06-12

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

最小生成树。

CODE:

 

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <climits>    
//INT_MAX,整形范围内的最大整数。
#include <algorithm>
using 
namespace std;
#define INF 0x3f3f3f3f
const 
int SIZE = 
110;
double w[SIZE][SIZE];
double d[SIZE];
int v[SIZE];
int n;
struct node
{
    
double x, y;
}a[SIZE];
double fun(
const node a, 
const node b)
{
    
return sqrt((b.y - a.y) * (b.y - a.y) + (b.x - a.x) * (b.x - a.x));
}
double Prim(
int src)
{
    
int i, j;
    
double cnt = 
0;
    
for(i = 
1; i <= n; i++) d[i] = (i == src)? 
0:INF;
    
for(i = 
1; i <= n; i++)
    {
        
int x;
        
double m = INF;
        
for(
int y = 
1; y <= n; y++) 
if(!v[y] && m > d[y]) m = d[x=y];
        v[x] = 
1;
        cnt += m;
        
for(
int y = 
1; y <= n; y++) d[y] <?= w[x][y];
    }
    
return cnt;
}
void init()
{
    memset(v, 
0
sizeof(v));
    memset(d, 
0
sizeof(d));
    memset(a, 
0
sizeof(a));
    
for(
int i = 
1; i <= SIZE; i++)
        
for(
int j = 
1; j <= SIZE; j++)
            w[i][j] = INF;
}
int main()
{
    
int i, j;
    
while(~scanf(
"
%d
", &n))
    {
        init();
        
for(i = 
1; i <= n; i++)
        {
            scanf(
"
%lf%lf
", &a[i].x, &a[i].y);
        }
        
for(i = 
1; i <= n; i++)
        {
            
for(j = 
1; j <= n; j++)
            {
                
if(i == j) 
continue;
                w[i][j] = fun(a[i], a[j]);
            }
        }
        
double ans = Prim(
1);
        printf(
"
%.2lf\n
", ans);
    }
    
return 
0;
}

 

转载于:https://www.cnblogs.com/g0feng/archive/2012/08/28/2660872.html

你可能感兴趣的文章
Swift 3.0第1步,面向所有开发者开源
查看>>
XCOPY
查看>>
jmeter-录制, 编辑脚本,性能测试全过程review
查看>>
UCOS2系统内核讲述(五)_初始化TCB详情
查看>>
PostgreSQL查询优化简介
查看>>
树莓派相关下载资源
查看>>
线程同步与异步
查看>>
蓝桥网试题 java 入门训练 A+B问题
查看>>
字典操作学习小结
查看>>
逻辑运算符
查看>>
jstl和jsp脚本变量相互访问
查看>>
重新打理博客
查看>>
Apache+modjk布置tomcat集群
查看>>
Javascript笔记部分
查看>>
【转】微软教学:三种方法屏蔽Win7/Win8.1升级Win10推送
查看>>
1 C# 将对象序列化
查看>>
Qt事件处理(一)
查看>>
HDU 1563 【Find your present!】
查看>>
关于html的meta标签总结
查看>>
1、Spark 通过api,hfile两种形式获取hbase数据,简单样例
查看>>