• 「最小生成树」[HAOI2006]聪明的猴子


    [HAOI2006]聪明的猴子

    原题链接 [HAOI2006]聪明的猴子

    题目大意

    给你(n)个数,代表最多可以走多长的边权,再给你(m)个坐标,每个坐标给(x, y)两个值,求在(n)中有多少值能够走完(m)个这些坐标

    题目题解

    很水的一道题,只是熟悉下模板 就是坐标两两连线,然后用最小生成树乱搞一下

    (最小生成树模板出错改了一个小时 quq)

    //#define fre yes
    
    #include <cmath>
    #include <cstdio>
    #include <iostream>
    #include <algorithm>
    #define int long long
    
    const int N = 10005;
    int par[N];
    int b[N], dx[N], dy[N];
    
    struct Node {
        int x, y, k;
    } edgee[N * 60];
    
    bool cmp(Node x, Node y) {
        return x.k < y.k;
    }
    
    int find(int x) {
        if(x == par[x]) return par[x];
        else return par[x] = find(par[x]);
    }
    
    int tnt = 0;
    signed main() {
        static int n, m;
        scanf("%lld", &n);
        for (int i = 1; i <= n; i++) {
            scanf("%lld", &b[i]);
        }
    
        scanf("%lld", &m);
        for (int i = 1; i <= m; i++) {
            int x, y;
            scanf("%lld %lld", &x, &y);
            dx[i] = x; dy[i] = y;
            par[i] = i;
        }
    
        int cnt = 0;
        for (int i = 1; i < m; i++) {
            for (int j = i + 1; j <= m; j++) {
                edgee[++cnt].x = i;
                edgee[cnt].y = j;
                edgee[cnt].k = sqrt(((dx[i] - dx[j]) * (dx[i] - dx[j])) + ((dy[i] - dy[j]) * (dy[i] - dy[j])));
            }
        }
    
        std::sort(edgee + 1, edgee + 1 + cnt, cmp);
    
        int num = 0;
        for (int i = 1; i <= cnt; i++) {
            int x = find(edgee[i].x);
            int y = find(edgee[i].y);
            if(x == y) continue;
    
            par[x] = y;
            tnt = std::max(tnt, edgee[i].k);
            num++;
            if(num == m - 1) break;
        }
    
        int ans = 0;
        for (int i = 1; i <= n; i++) {
            if(b[i] >= tnt) ans++;
        } printf("%lld
    ", ans);
        return 0;
    }
    
    
  • 相关阅读:
    phpcms配置404页面
    百度蜘蛛IP地址大全
    36.99.136.*和111.7.100.*两个IP段探究
    讯搜xunsearch的安装与简单使用方法
    wget命令批量下载图片,有规律的url
    wget命令批量下载图片
    宝塔+云锁Nginx自编译web防护亲测教程
    一键下载大学慕课等课程视频
    这些学习网站你一定不可以错过
    第8组 Alpha(1/6)(赵红霞)
  • 原文地址:https://www.cnblogs.com/Nicoppa/p/11502275.html
Copyright © 2020-2023  润新知