【并查集】强迫症患者的福音

来源:互联网 发布:山东大数据公司有哪些 编辑:程序博客网 时间:2024/05/16 02:10

并查集初始化时你需要金坷垃初始化father数组,于是你需要这样的代码:


void init(){        int i=0; while(i<N) father[i] = i++;}
void init(){        for(int i=0; i<N; ++i) father[i] = i;}


强迫症患者一般会发生如下症状:

#define INITIALIZE do{ for(int i=0; i<N; ++i) father[i] = i; }while(0);

本着珍爱生命,远离三次元的指导思想(0.0),我们可以这么并查集:

memset(father, -1, sizeof father);

紧接着我们需要新的find函数:

int find(x){ if(fa[x] == -1) return x; else return fa[x] = find(fa[x]); }

最后我们因该数一下缩进,因为每一行都用:结尾,不调好缩进会造成难以预料的BUG。


以上

0 0
原创粉丝点击