10034 Freckles

原创 2016年08月30日 16:41:18

题目大意:

给你n个点的坐标,任意两个点都可以相连

让你找出最小生成树的总边长


思路:最小生成树问题

        prim  or  kruskal


代码:

prim算法(AC)

#include<iostream>
#include<stdio.h>
#include<queue>
#include<functional>
#include<math.h>
#include<cstring>
using namespace std;

struct vertex {
	double x, y;
}v[100];

int n,e[110];
double ans,d[110];;


double dis(const vertex& v1,const vertex& v2)
{
	return sqrt((v1.x - v2.x)*(v1.x - v2.x) + (v1.y - v2.y)*(v1.y - v2.y));
}

void prim()
{
    memset(e, 0, sizeof(e));
    ans = 0;

    e[1]=1;
    for(int i=1;i<=n;i++)
        d[i]=dis(v[1],v[i]);

    while(true){
    double min = 1<<30;
    int j=0;
    for(int i=1;i<=n;i++)
        if(!e[i]&&d[i]<min)
    {

        min = d[i];   //找到最小边以及最小边对应的点
        j=i;
    }
    if(j==0)return;
    ans+=min;
    e[j]=1;//把点加进来,更新d[i]
    for(int i=1;i<=n;i++)
    {
        double tmp=dis(v[j],v[i]);
        if(tmp<d[i])
            d[i] = tmp;
    }

    }

}

void read()
{
    char line[5];
    gets(line);

    cin >> n;
    for (int i = 1; i <= n; i++)
       cin >> v[i].x >> v[i].y;
}

int main()
{

	//freopen( "c:\\data\\10034.txt", "r", stdin);
	int c;
	cin >> c;
	while (c--)
	{
		read();
		prim();
		printf("%.2f\n", ans);
		if(c)printf("\n");
	}

	return 0;
}


Android 6.0 相关问题

1.java.lang.SecurityException: getDeviceId: Neither user 10063 nor current process has android.permi...
  • github_33304260
  • github_33304260
  • 2016年11月24日 23:51
  • 1940

UVA - 10034 Freckles (kruskal算法)

题目d 在"Dick Van Dyke"的某一集中,小 Richie 尝试把他爸爸背上的斑点连成独立钟的图案。但是其中一个斑点是伤疤,所以 Richie 的尝试失败了。 把 Dick 的背...
  • HelloWorld10086
  • HelloWorld10086
  • 2014年11月14日 15:30
  • 380

UVa10034 Freckles

Problem A: Freckles In an episode of the Dick Van Dyke show, little Richie connects the freckleso...
  • u010544342
  • u010544342
  • 2013年08月05日 15:40
  • 643

UVA 10034 - Freckles

Q10034: Freckles給你一些點的座標,把這些點用墨水畫直線連起來,使得所有的點最後都連在一起。你的任務是寫一個程式找出墨水畫出的長度最小是多少?Input輸入的第一列有一個整數,代表以下有...
  • tclh123
  • tclh123
  • 2011年04月09日 23:47
  • 728

UVA:10034 - Freckles

http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=116&page=show_problem&...
  • Sprithy_Dream
  • Sprithy_Dream
  • 2012年04月21日 09:51
  • 229

uva_10034 Freckles Kruskal (使用并查集) 或Prim

Kruskal   #include #include #include #define N 100 #define inf 1e200 using namespace std; dou...
  • whu_zxl
  • whu_zxl
  • 2012年07月18日 19:28
  • 252

UVaOJ 10034 - Freckles

——by A Code Rabbit Description 求直角坐标系上能够把几个点相连起来最短线段的长度。 输入每个点的坐标。 输出最短线段的长度。 Types ...
  • Ra_WinDing
  • Ra_WinDing
  • 2012年08月12日 19:00
  • 612

UVa 10034 Freckles (MST & 稠密图的O(V^2)的Prim算法)

10034 - Freckles Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onlinejud...
  • synapse7
  • synapse7
  • 2014年01月11日 15:52
  • 1027

poj 2560 uva 10034 - Freckles

点击打开链接uva 10034 题目意思:  给定n个点的坐标,要求找到最短的路径将这些点链接起来 思路:  Prime + 最小生成树 分析:  给定n个点的坐标,要求找到...
  • cgl1079743846
  • cgl1079743846
  • 2012年09月18日 11:29
  • 911

UVa:10034 Freckles

还是最小生成树的问题。   不过这里的边需要自己求。两个循环就可以求出来。   Kruskal算法: #include #include #include #include #include ...
  • kkkwjx
  • kkkwjx
  • 2013年08月10日 12:20
  • 477
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:10034 Freckles
举报原因:
原因补充:

(最多只允许输入30个字)