并查集

1.蓝桥幼儿园 - 蓝桥云课 (lanqiao.cn)

#include <bits/stdc++.h>
using namespace std;
const int N=2e5+7;
int n,m;
int p[N];
int find(int x){
  if(p[x]==x)return x;
  else return find(p[x]);
}
int main(){
  cin>>n>>m;
  for(int i=1;i<=n;i++)p[i]=i;
  for(int i=1;i<=m;i++){
    int op;int a,b;cin>>op>>a>>b;
    if(op==1){//插入算法
      int pa=find(a);
      int pb=find(b);
      if(pa==pb)continue;//对比的话要去对比find函数
      else p[pa]=pb;//合并的话用手合并
    }
    else cout<<(find(p[a])==find(p[b])?"YES":"NO")<<'\n';
  }
  return 0;
}

 15 届蓝桥杯 14 天省赛冲刺营 1 期 - 合根植物 - 蓝桥云课 (lanqiao.cn)

#include <bits/stdc++.h>
using namespace std;
typedef pair<int,int> PII;
const int N = 1e6+7;
int p[N];//记录父根
int find(int x){
    if(p[x]!=x)p[x]=find(p[x]);//如果你不是父根就去找你的父根去
    return p[x];
}
int num;
int main() {
    int n,m;cin>>n>>m>>num;
    for(int i=1;i<=n*m;i++)p[i]=i;//父根指向自己
    for(int i=1;i<=num;i++){
      int a,b;cin>>a>>b;
      int pa=find(a);
      int pb=find(b);
      if(pa!=pb){
        p[pa]=pb;
      }
    }
    int ans=0;
    for(int i=1;i<=n*m;i++){
      if(p[i]==i)ans++;//根节点的他特征就是指向自己
    }
    cout<<ans;
}

 1.修改数组 - 蓝桥云课 (lanqiao.cn)

#include <bits/stdc++.h>
using namespace std;
const int N=1e6+7;
int p[N];
int find(int x){//找到往右边数第一个没有用过的节点
  if(p[x]==x)return x;
  else return p[x]=find(p[x]);//找你的父亲
}
int main(){
  int n;cin>>n;
  for(int i=1;i<=N;i++)p[i]=i;
  for(int i=1;i<=n;i++){
    int x;cin>>x;
    x=find(x);
    cout<<x<<' ';
    p[x]=x+1;//指向下一个
  }
  return 0;
}

 

 

相关推荐

  1. 【C++】

    2024-04-04 02:16:03       29 阅读
  2. 笔记

    2024-04-04 02:16:03       22 阅读
  3. <span style='color:red;'>并</span><span style='color:red;'>查</span><span style='color:red;'>集</span>

    2024-04-04 02:16:03      15 阅读
  4. leetcode

    2024-04-04 02:16:03       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-04 02:16:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-04 02:16:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-04 02:16:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-04 02:16:03       20 阅读

热门阅读

  1. 【Redis】初识 Redis

    2024-04-04 02:16:03       13 阅读
  2. 【动态规划】【背包问题】基础背包

    2024-04-04 02:16:03       14 阅读
  3. 【Kotlin】Sequence简介

    2024-04-04 02:16:03       14 阅读
  4. 东方 - 循环(2) - 求和计数

    2024-04-04 02:16:03       12 阅读
  5. android跳转到系统设置wifi界面

    2024-04-04 02:16:03       13 阅读
  6. Vue.js组件精讲 开篇:Vue.js的精髓——组件

    2024-04-04 02:16:03       11 阅读
  7. PHP教程_PHP5函数str_replace替换字符串中的字符

    2024-04-04 02:16:03       15 阅读
  8. 跟我学c++高级篇——常见的反射框架

    2024-04-04 02:16:03       13 阅读
  9. 设计模式|状态机模式(State Machine Pattern)

    2024-04-04 02:16:03       20 阅读
  10. OAuth 2.0(Open Authorization 2.0)授权框架入门介绍

    2024-04-04 02:16:03       14 阅读