题解 | Freckles

#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
const int maxn = 105;
int f[maxn];
int h[maxn];
void init() {
    for (int i = 0; i < maxn; i++) {
        f[i] = i;
        h[i] = 0;
    }
}
int find(int x) {
    if (x != f[x]) {
        f[x] = find(f[x]);
    }
    return f[x];
}
void uniond(int x, int y) {
    x = find(x);
    y = find(y);
    if (x != y) {
        if (h[x] > h[y])f[y] = x;
        else if (h[x] < h[y])f[x] = y;
        else {
            f[y] = x;
            h[x]++;
        }
    }
}
struct edge {
    double x;
    double y;
    int num;
} ed[maxn];
struct path {
    int from;
    int to;
    double len;
} pa[maxn * maxn];
bool cmp(path p1, path p2) {
    return p1.len < p2.len;
}
int main() {
    int n;
    cin >> n;
    for (int i = 0; i < n; i++) {
        cin >> ed[i].x >> ed[i].y;
        ed[i].num = i;
    }
    int k = 0;
    for (int i = 0; i < n - 1;
            i++) { //i点到j点都有路线,测出每一条路线
        for (int j = i + 1; j < n; j++) {
            pa[k].from = i;
            pa[k].to = j;
            double x1 = abs(ed[i].x - ed[j].x);
            double y1 = abs(ed[i].y - ed[j].y);
            pa[k].len = sqrt(x1 * x1 + y1 * y1);
            k++;
        }
    }
    sort(pa, pa + k, cmp);
    double sum = 0;
    init();
    for (int i = 0; i < k; i++) {
        if (find(pa[i].from) != find(pa[i].to)) {
            uniond(pa[i].from, pa[i].to);
            sum += pa[i].len;
        }
    }
    printf("%.2f\n", sum);
}

全部评论

相关推荐

在笔试的大西瓜很矫健:校招数分不用想了,这经历和学历都不够用,大厂更别想,初筛都过不了,说点不好听的小厂数分都进不去(小厂也是假数分),要两个对口实习+3个项目(或者3+2),而且要有含金量才能补一点你的学历劣势。 建议刷实习,社招找数分,校招看运气,能入行业就行,可以运营转数分
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# 春招至今,你的战绩如何? #
13730次浏览 132人参与
# AI面会问哪些问题? #
813次浏览 19人参与
# 巨人网络春招 #
11460次浏览 224人参与
# 你的实习产出是真实的还是包装的? #
2431次浏览 47人参与
# AI时代,哪个岗位还有“活路” #
2495次浏览 49人参与
# 长得好看会提高面试通过率吗? #
2446次浏览 39人参与
# 米连集团26产品管培生项目 #
6866次浏览 223人参与
# 你做过最难的笔试是哪家公司 #
1020次浏览 18人参与
# HR最不可信的一句话是__ #
914次浏览 31人参与
# 沪漂/北漂你觉得哪个更苦? #
908次浏览 29人参与
# 军工所铁饭碗 vs 互联网高薪资,你会选谁 #
7898次浏览 43人参与
# XX请雇我工作 #
51120次浏览 171人参与
# 简历中的项目经历要怎么写? #
310755次浏览 4250人参与
# 简历第一个项目做什么 #
31964次浏览 354人参与
# 不考虑薪资和职业,你最想做什么工作呢? #
152726次浏览 888人参与
# 当下环境,你会继续卷互联网,还是看其他行业机会 #
187486次浏览 1123人参与
# AI时代,哪些岗位最容易被淘汰 #
64398次浏览 857人参与
# 如果重来一次你还会读研吗 #
229937次浏览 2011人参与
# 正在春招的你,也参与了去年秋招吗? #
364032次浏览 2640人参与
# 腾讯音乐求职进展汇总 #
160794次浏览 1114人参与
# 你怎么看待AI面试 #
180527次浏览 1287人参与
# 投格力的你,拿到offer了吗? #
178044次浏览 889人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务