云智计划_数据结构_并查集
算法介绍其实没什么好说的
注意几个点
1.fa=i;
2.按秩合并(亦称启发式合并)与路径优化可以同时存在,只有一个复杂度为O(nlog n),两个都用就是O(nα(n)),相当于O(n)
α()在1e6的数据下,也只有5,比常数还常数
代码
int find(int x){return(fa==x?x:fa=find(fa));}
void marge(int a,int b)
{
x=find(x);y=find(y);
if(a==b)return ;
else fa=b;//实在复杂度就是差一点,可以写个按秩排序
} 基础例题
1.P1111 修复公路 - 洛谷
其实就是板子
并查集特征:只关心谁与谁在同一集合
知识点:离线处理
然后就没辣
Talk is cheap,show me the code//https://www.luogu.com.cn/problem/P1111//P1111 修复公路#include#include#define maxm 100010#define maxn 1010using namespace std;struct EDGE{ int u,v,tim;}edge;int tot;void add(int u,int v,int tim){ edge[++tot].v=v; edge.tim=tim; edge.u=u;}bool rule(EDGE a,EDGE b){ return a.tim>n>>m; for(int i=1;i>x>>y>>z; add(x,y,z); } sort(edge+1,edge+tot+1,rule); for(int i=1;i>a.y>>a.relation; //*+*+*+*+*+*+*离散化Discretization*+*+*+*+*+*+* for(int i=1;ia>>b; if(c=='M') { a=find(a); b=find(b); tag=sz; sz+=sz; fa=b; } else { if(find(a)!=find(b))cout yyds。多谢分享 yyds。多谢分享 感谢发布原创作品,程序园因你更精彩 过来提前占个楼 热心回复! 这个有用。 感谢发布原创作品,程序园因你更精彩 喜欢鼓捣这些软件,现在用得少,谢谢分享! 过来提前占个楼 东西不错很实用谢谢分享 前排留名,哈哈哈 这个好,看起来很实用 不错,里面软件多更新就更好了 鼓励转贴优秀软件安全工具和文档! 这个好,看起来很实用 谢谢分享,辛苦了 分享、互助 让互联网精神温暖你我 分享、互助 让互联网精神温暖你我 东西不错很实用谢谢分享
页:
[1]
2