zoukankan      html  css  js  c++  java
  • jQuery火箭图标返回顶部代码

    题目

     记录悲伤

    已知猴子的数量以及猴子跳的最大距离

    已知数的数量以及树的坐标

    最小生成树

    每两棵树之间的距离需要枚举来计算

    算出最大值之后再与n只猴子进行比较记录答案

    需要注意

    在使用最小生成树的时候

    我们的fa数组是记录的边他存储的是一棵树

    结构体存储的信息也是一棵树

    最后判断是否已经构成一棵树时

    判断的是与m的大小关系

    Code:

    //I'll knock your block off if you break you word!
    #include <cmath>
    #include <cstdio>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    const int N = 5100;
    const int M = 1000010;
    int mok[N], cnt, n, m, num = 1, fa[M], ans, X[M], Y[M];
    double sum = -0x3f3f3f3f;
    struct node {
        int x, y;
        double dis;
    }e[M];
    int read() {
        int s = 0, w = 1;
        char ch = getchar();
        while(!isdigit(ch)) {if(ch == '-') w = -1; ch = getchar();}
        while(isdigit(ch)) {s = s * 10 + ch - '0'; ch = getchar();}
        return s * w;
    }
    double way(int i, int j) {
        return sqrt((X[i] - X[j]) * (X[i] - X[j]) + (Y[i] - Y[j]) * (Y[i] - Y[j]));
    }
    bool cmp(node x, node y) {
        return x.dis < y.dis;
    }
    int find(int x) {
        return fa[x] == x ? x : fa[x] = find(fa[x]);
    }
    int main() {
        n = read();
        for(int i = 1; i <= n; i++) mok[i] = read();
        m = read();
        for(int i = 1; i <= m; i++) X[i] = read(), Y[i] = read();
        for(int i = 1; i <= m; i++)
            for(int j = i + 1; j <= m; j++) 
                e[++cnt].x = i, e[cnt].y = j, e[cnt].dis = way(i, j);
        sort(e + 1, e + 1 + cnt, cmp);
        for(int i = 1; i <= m; i++) fa[i] = i;
        for(int i = 1; i <= cnt; i++) {
            int fx = find(e[i].x), fy = find(e[i].y);
            if(fx != fy) {
                fa[fx] = fy;
                num++;
                sum = max(sum, e[i].dis);
    //            cout << sum << endl;
            }
            if(num == m) break;
        }
        for(int i = 1; i <= n; i++) if(mok[i] >= sum) ans++;
        printf("%d
    ", ans);
        return 0;
    }

    谢谢收看, 祝身体健康!

  • 相关阅读:
    python技巧
    tikz vfill vfil
    知之为知之,不知为不知
    newPost
    欢迎使用 WordPress 3.2.1 for SAE
    校正oracle,mysql,hive,postgresql,greenplum 记录数分析命令
    Hive 分区表&分区字段
    oracle 建表、主键、分区
    使用TortoiseSVN 客户端的一些问题
    jquery bankInput银行卡账号格式化
  • 原文地址:https://www.cnblogs.com/yanxiujie/p/11713376.html
Copyright © 2011-2022 走看看