• Codeforces Round #134 (Div. 2) 并查集


    1.阅读题,读明白题就能过。

    2.贪心题,简单想一想就能过。

    3.并查集,抽象出来图论模型就能过,抽象不出来,累死你。

    按照《图论算法理论、实现及应用》书上的模板敲,RE在第48组,现在也不知道为什么。

    于是敲常规的并查集:

    #include <iostream>
    #include <stdio.h>
    using namespace std;
    struct P{
        int x,y;
    }p[100000];
    int parent[100000];
    int n;
    int find(int x){
        return x==parent[x] ? x : parent[x]=find(parent[x]);
    }
    int main(){
    
        while(scanf("%d",&n)!=EOF){
            for(int i=0;i<n;i++){
                cin >> p[i].x >> p[i].y;
            }
            for(int i=0;i<n;i++){
                parent[i]=i;
            }
            for(int i=0;i<n;i++){
                for(int j=i+1;j<n;j++){
                    if(p[i].x==p[j].x || p[i].y==p[j].y){
                        if(find(i)==find(j)) continue;
                        else parent[find(i)]=find(j);
                    }
                }
            }
            int cou=0;
            for(int i=0;i<n;i++){
                if(parent[i]==i) cou++;
            }
            printf("%d\n",cou-1);
        }
        return 0;
    }

    发现飞哥的神并查集+优化模板:

    
    
    int find(int x){
        return x==parent[x] ? x : parent[x]=find(parent[x]);
    }
    for(int i=0;i<n;i++){
                for(int j=i+1;j<n;j++){
                    if(p[i].x==p[j].x || p[i].y==p[j].y){
                        if(find(i)==find(j)) continue;
                        else parent[parent[i]]=j;
                    }
                }
            }
  • 相关阅读:
    js原始数据类型和引用数据类型=>callback数据传输原理
    wamp虚拟服务器
    chrome 跨域设置-(完善博客内容)
    js原生API----查找dom
    正则表达式
    ajax ----进度条的原理
    ajax 原理----初级篇
    转载 webstrom识别 React语法
    javascript性能优化
    JavaScript DOM
  • 原文地址:https://www.cnblogs.com/markliu/p/2645851.html
Copyright © 2020-2023  润新知