日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

并查集 模板

發布時間:2025/6/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 并查集 模板 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

知識點

并查集是一種樹型的數據結構,用于處理一些不相交集合的合并問題。
并查集的主要操作有
1-合并兩個不相交集合
2-判斷兩個元素是否屬于同一個集合
3-路徑壓縮

?

我轉載的一個并查集介紹:(很詳細)http://blog.csdn.net/xiaotaoqibao/archive/2009/08/14/4447995.aspx

?

?

[c-sharp]?view plaincopy
  • #include?<iostream>??
  • using?namespace?std;??
  • #define?N?100005??
  • ??
  • struct?set??
  • {??
  • ????int?parent;??//記錄父節點??
  • ????int?rank;????//記錄集合的節點數??
  • }elem[N];??
  • ??
  • int?MAX;??
  • ??
  • void?init()??
  • {??
  • ????int?i;??
  • ????for(i=0;i<=N;i++)??
  • ????{??
  • ????????elem[i].parent=i;??
  • ????????elem[i].rank=1;??
  • ????}??
  • }??
  • ??
  • int?Find(int?x)??
  • {??
  • ????int?root,temp;??
  • ????temp=x;??
  • ????while(x!=elem[x].parent)????//尋找根節點??
  • ????????x=elem[x].parent;??
  • ????root=x;??
  • ????x=temp;??
  • ????while?(x!=elem[x].parent)???//壓縮路徑,全部賦值為根節點的值??
  • ????{??
  • ????????temp=elem[x].parent;??
  • ????????elem[x].parent=root;??
  • ????????x=temp;??
  • ????}??
  • ????return?root;??
  • }??
  • ??
  • void?Union(int?a,int?b)???//合并兩個集合??
  • {??
  • ????int?x,y;??
  • ????x=Find(a);??
  • ????y=Find(b);??
  • ????if(elem[x].rank>=elem[y].rank)??
  • ????{??
  • ????????elem[y].parent=elem[x].parent;??
  • ????????elem[x].rank+=elem[y].rank;??
  • ????????if(MAX<elem[x].rank)??
  • ????????????MAX=elem[x].rank;??
  • ????}??
  • ????else??
  • ????{??
  • ????????elem[x].parent=elem[y].parent;??
  • ????????elem[y].rank+=elem[x].rank;??
  • ????????if(MAX<elem[y].rank)??
  • ????????????MAX=elem[y].rank;??
  • ????}??
  • }??
  • ??
  • int?main()??
  • {??
  • ????int?n;??//有關系的對數??
  • ????int?a,b,x,y;??
  • ????while?(scanf("%d",&n)!=EOF)??
  • ????{??
  • ????????init();??
  • ????????MAX=-1;??
  • ????????while?(n--)??
  • ????????{??
  • ????????????scanf("%d%d",&a,&b);??
  • ????????????x=Find(a);??
  • ????????????y=Find(b);??
  • ????????????if(x!=y)??????
  • ????????????????Union(a,b);//a和b不是一個集合的,合并這兩個集合??
  • ????????}??
  • ????????if(MAX!=-1)??
  • ????????????printf("%d/n",MAX);???//輸出最大集合的節點數??
  • ????????else??
  • ????????????printf("1/n");???//此時n=0,證明都是沒關系的人??
  • ????}??
  • ????return?0;??
  • }??
  • 總結

    以上是生活随笔為你收集整理的并查集 模板的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 浪漫樱花在线观看高清动漫 | 国产无码精品在线观看 | 久久精品大片 | 色婷婷综合五月 | 特级黄色大片 | 永久免费54看片 | 乳罩脱了喂男人吃奶视频 | 激情导航| 日本少妇中文字幕 | 日韩精品一区二区三区在线 | 国产欧美日韩综合精品一区 | 久久亚洲精品无码va白人极品 | 欧美另类极品videosbest使用方法 | av网子 | 欧美日本一区 | 青娱乐在线视频观看 | 国产国语老龄妇女a片 | 99999视频| h片在线观看 | 欧美情侣性视频 | 少妇的激情 | 国产r级在线观看 | 成年人看的免费视频 | 免费污网站在线观看 | 国产人成 | 欧美日韩国产一区在线 | 无码人妻精品一区二区三区99不卡 | 天堂最新 | 日日夜夜撸啊撸 | 日本激情网 | 国产一区二区黄 | 国产精品视频123 | 精品人妻一区二区三区换脸明星 | 九色91popny蝌蚪新疆 | 男女啪啪av| 视频在线观看电影完整版高清免费 | www伊人 | 日韩欧美在线观看 | 国产高清色 | 欧日韩一区二区三区 | 国产黄色大全 | 七月婷婷综合 | 亚洲在线免费观看视频 | 97在线视频免费观看 | 青青国产在线视频 | 久久久久99精品成人片毛片 | 大奶子在线| 国产美女主播在线 | 成人私密视频 | 中文亚洲欧美 | 黄a免费网络 | 成人在线天堂 | 国产h在线观看 | 精品一区二区三区四区五区六区 | 亚洲第九十七页 | 福利小视频在线观看 | 男人用嘴添女人下身免费视频 | 爱草av | 国产裸体永久免费视频网站 | 在线资源av | 成人免费区一区二区三区 | 夜夜嗨老熟女av一区二区三区 | www四虎精品视频免费网站 | 九九视频这里只有精品 | 国产精久久久久久 | 免费成人在线视频观看 | 99爱免费 | 四虎免费av| 午夜在线视频观看 | 国产午夜麻豆影院在线观看 | 一级黄色伦理片 | 成人精品视频在线播放 | www.九九九| 少妇综合 | 91新网站 | 国产哺乳奶水91在线播放 | 国产精品免费大片 | 天天黄色片 | 久久午夜电影网 | 亚洲av片在线观看 | 吊视频一区二区三区 | 欧美性生交大片免费看 | 日韩av手机在线播放 | 五十路在线 | 欧美日韩一区三区 | 岛国av网址 | 成人青青草| 天天干天天操天天爱 | 欧美精品性生活 | 永久免费在线观看av | 老版水浒传83版免费播放 | 日本一区二区欧美 | 国产九九热 | 男操女视频免费 | 激情五月综合色婷婷一区二区 | 国产一区观看 | 日韩人妻精品无码一区二区三区 | 国产成人一区二区三区电影 | 成年人网站在线观看视频 |