当前位置: 首页 > news >正文

并查集..

Problem - 893C - Codeforces(求连通块内最小值)

#include <bits/stdc++.h>
using namespace std;typedef long long LL;
typedef pair<int,int> PII;
typedef pair<LL,LL> PLL;const int N=1e5+10;
int p[N],s[N];int find(int x)
{if(p[x]!=x) p[x]=find(p[x]);return p[x];
}
void merge(int u,int v)
{u=find(u);v=find(v);if(s[u]>s[v]){p[u]=v;}else{p[v]=u;}
}
void solve()
{int n,m;cin>>n>>m;for(int i=1; i<=n;i ++) p[i]=i;for(int i=1; i<=n;i ++) cin>>s[i];for(int i=1, u,v; i<=m; i++){cin>>u>>v;merge(u,v);}LL ans=0;for(int i=1; i<=n; i++){if(find(i)==i) ans+=s[i];}cout<<ans<<'\n';
}int main()
{int T;
//	cin>>T;T=1;while(T--){solve();}return 0;
}

#include <bits/stdc++.h>
using namespace std;typedef long long LL;
typedef pair<int,int> PII;
typedef pair<LL,LL> PLL;const int N=1e5+10;
int p[N],s[N];int find(int x)
{if(p[x]!=x) p[x]=find(p[x]);return p[x];
}
void merge(int u,int v)
{u=find(u);v=find(v);if(u!=v){p[v]=u;s[u]=min(s[u],s[v]);}
}
void solve()
{int n,m;cin>>n>>m;for(int i=1; i<=n;i ++) p[i]=i;for(int i=1; i<=n;i ++) cin>>s[i];for(int i=1, u,v; i<=m; i++){cin>>u>>v;merge(u,v);}LL ans=0;for(int i=1; i<=n; i++){if(find(i)==i) ans+=s[i];}cout<<ans<<'\n';
}int main()
{int T;
//	cin>>T;T=1;while(T--){solve();}return 0;
}

Problem - 977E - Codeforces(简单环)

#include <bits/stdc++.h>
using namespace std;typedef long long LL;
typedef pair<int,int> PII;
typedef pair<LL,LL> PLL;const int N=2e5+10;
int p[N],d[N];
bool st[N];
int find(int x)
{if(p[x]!=x) p[x]=find(p[x]);return p[x];
}void solve()
{int n,m;cin>>n>>m;for(int i=1; i<=n;i ++) p[i]=i;for(int i=0, a,b;i<m; i++){cin>>a>>b;p[find(a)]=find(b);d[a]++, d[b]++;}for(int i=1; i<=n; i++){if(d[i]!=2) st[find(i)]=true;}int res=0;for(int i=1; i<=n; i++){if(find(i)==i && !st[find(i)]) res++;}cout<<res<<'\n';
}int main()
{int T;
//	cin>>T;T=1;while(T--){solve();}return 0;
}

Problem - 1167C - Codeforces(求连通块的大小)

#include <bits/stdc++.h>
using namespace std;typedef long long LL;
typedef pair<int,int> PII;
typedef pair<LL,LL> PLL;const int N=5e5+10;
int p[N],d[N];
bool st[N];
int find(int x)
{if(p[x]!=x) p[x]=find(p[x]);return p[x];
}
void merge(int a,int b)
{int r1=find(a);int r2=find(b);p[r2]=r1;
} 
void solve()
{int n,m;cin>>n>>m;for(int i=1; i<=n; i++) p[i]=i;while(m--){int q;cin>>q;if(q==0) continue;int a;cin>>a;for(int i=1,b; i<q; i++){cin>>b;merge(a,b);}}vector<int> ans(n+1);for(int i=1; i<=n; i++){ans[find(i)]++;}for(int i=1; i<=n; i++){cout<<ans[find(i)]<<' ';}cout<<'\n';
}int main()
{int T;
//	cin>>T;T=1;while(T--){solve();}return 0;
}

相关文章:

  • 智启万象|挖掘广告变现潜力,保障支付安全便捷
  • 集成高精度16bit模数转换ADC电路的两通道测量高精度电容调理芯片 - MDC02
  • C盘磁盘空间不足:VirtualBox的锅
  • 代码随想录 day 39 动态规划 打家劫舍
  • Adobe PhotoShop - 制图操作
  • 【计算机网络——分组延时,丢失,吞吐量】
  • 2024做一个网站要多少钱?
  • 【面试宝典】java多线程面试题总结(中)
  • 学习笔记第二十四天
  • 2024牛客暑期多校训练营7
  • 在IntelliJ IDEA中利用Git拉取项目
  • Midjourney技巧-生成拟人化动物(做你的品牌形象代言人)
  • 代码随想录算法训练营第十五天(一)| 110.平衡二叉树 (优先掌握递归)257. 二叉树的所有路径
  • 【安全工具推荐-Search_Viewer资产测绘】
  • 欺诈文本分类微调(一):基座模型选型
  • 深入了解以太坊
  • 【附node操作实例】redis简明入门系列—字符串类型
  • CSS 三角实现
  • CSS实用技巧
  • Java编程基础24——递归练习
  • React组件设计模式(一)
  • SpiderData 2019年2月13日 DApp数据排行榜
  • 利用jquery编写加法运算验证码
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 每天10道Java面试题,跟我走,offer有!
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 双管齐下,VMware的容器新战略
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • 带你开发类似Pokemon Go的AR游戏
  • #etcd#安装时出错
  • #Linux(帮助手册)
  • #pragma pack(1)
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (笔记)M1使用hombrew安装qemu
  • (笔试题)分解质因式
  • (二开)Flink 修改源码拓展 SQL 语法
  • (附源码)计算机毕业设计ssm高校《大学语文》课程作业在线管理系统
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (贪心 + 双指针) LeetCode 455. 分发饼干
  • (原創) 如何動態建立二維陣列(多維陣列)? (.NET) (C#)
  • (转)负载均衡,回话保持,cookie
  • (转)视频码率,帧率和分辨率的联系与区别
  • (自用)网络编程
  • .bat批处理(九):替换带有等号=的字符串的子串
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .NET Core Web APi类库如何内嵌运行?
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .NET Framework 服务实现监控可观测性最佳实践
  • .NET 指南:抽象化实现的基类
  • .NET中 MVC 工厂模式浅析
  • /ThinkPHP/Library/Think/Storage/Driver/File.class.php  LINE: 48
  • ;号自动换行