並查集的刪除操作
對於刪除操作,在完美的並查集中(所有節點都直接連線在根節點上),理論上只要把要刪除的節點的上級重新指向自己就可以了。
但是實際情況中,我們的並查集形成的樹的形態都是不可預估形態的,如果直接將一個節點指向自己可能會將他的“下級”和他一起刪除,這就和我們的想法違背了。
所以在一個需要刪除的並查集中初始化時就要處理一下:
- 首先可以將每一個點都設立一個虛擬父節點,這樣根節點就是我們設立的虛擬節點,類似於將每個節點放到一個盒子中
- 如果刪除某點,那麼可以修改當前節點的父節點來導致當前點的孤立,即刪除時把這個節點從當前盒子拿出來,放到另一個盒子中。
- 由於節點之間都是通過盒子來確定關係的,所以盒子中元素是否存在並不影響節點之間的關係。
於是我們就找到了,並查集中刪除某個節點的方法
如果要刪除2號節點,那麼我們把2拿出來放到另一個盒子中就可以了,可以看到原來的那個樹結構並沒有發生變化。但是2已經不在這裡面了
相關推薦
並查集——簡單易懂(內附並查集刪除操作)
並查集 並查集的定義 並查集是一種樹型的資料結構,用於處理一些不相交集合(Disjoint Sets)的合併及查詢問題。常常在使用中以森林來表示。 集就是讓每個元素構成一個單元素的集合,也就是按一定順序將屬於同一組的元素所在的集合合併。 並查集的用途 維護一個無
HDU 2473 Junk-Mail Filter 【並查集刪除】
limit nes chmod from src desc command rdquo sid Junk-Mail Filter Time Limit: 15000/8000 MS (Java/Others) Memory Limit: 32768/32768 K
hdu 2473(並查集刪除點)
algo 一起 open users ems scanf blog spa freopen 題目連接: 題意:給定n個點m次操作,有兩種操作,M a b 操作是將a b合並到一起,S a 操作是從a所在的集合中刪除a點,所有的操作結束後輸出集合的個數。 題解:用並查集。刪除
HDU-2473 Junk-Mail Filter(並查集刪除節點)
Problem Description Recognizing junk mails is a tough task. The method used here consists of two steps: 1) Extract the common charac
【ZCMU1435】盟國(並查集刪除節點)
題目連結 1435: 盟國 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 456 Solved: 104 [Submit][Status][Web Board] Description 世界上存在著N個國家,簡單起見
並查集基本操作及擴充套件
一.基本定義 1.並查集是一種維護集合的資料結構,其名字中的並 查 集分別取自union(合併),find(查詢),set(集合)。支援下面兩個操作 合併:合併兩個集合。 查詢:判斷兩個元素是否在一個集合中。 2.並查集的實現。int father[]。用一個fath
親戚【並查集】(內附並查集基本操作)
【問題描述】 何氏家族人員過於龐大,要判斷兩個是否是親戚,確實還很不容易,現在給出某個親戚關係圖,求任意給出的兩個人是否具有親戚關係。規定:x和y是親戚,y和z是親戚,那麼x和z也是親戚。如果x,y是親戚,那麼x的親戚都是y的親戚,y的親戚也都是x的親
並查集簡單操作及經典例題題解
並查集包括並和查兩部分。實際操作中有三個函式與兩個陣列構成。兩個陣列:int deep[N] //用來儲存該門派的樹的深度 int captain[n]
HDU 2473 Junk-Mail Filter (並查集的刪除操作)
clu info std -s ase ive trac can tinc Problem Description Recognizing junk mails is a tough task. The method used here consists of tw
朋友(並查集的刪除操作 可看作是插入操作的逆序)
nor 輸出 width 兩個 gpo 示例 接下來 朋友 如果 小 z 被選為他們村的村長, 現在小 z 調查他們村上的關系。 如果村民 a 和村民 b 是朋友, 村民 b 和村民 c 是朋友, 那麽村民 a 和村民 c 也是朋友。 那麽村上的村民就會形成一個“朋友” 團
並查集的刪除操作
對於刪除操作,在完美的並查集中(所有節點都直接連線在根節點上),理論上只要把要刪除的節點的上級重新指向自己就可以了。 但是實際情況中,我們的並查集形成的樹的形態都是不可預估形態的,如果直接將一個節點指向自己可能會將他的“下級”和他一起刪除,這就和我們的想法違背了。 所以在一個需要刪除的並查集
UVA11987(帶權並查集的刪除操作)
Almost Union-Find 題目連結:http://acm.hust.edu.cn/vjudge/contest/view.action?cid=57812#problem/C I hope you know the beautiful Union-Find structure. In this
盟國 (並查集的刪除操作)
題目連結 思路 並查集的刪除節點,基本的並查集只涉及合併和查詢,沒有刪除。 並查集的結構是樹形的,在刪除一個節點的同時還要保持其子節點與根節點的相對關係,是很麻煩的,所以我們的做法就是不去
Restructuring Company和Almost Union-Find 並查集的區間合並與並查集的刪除
whether who cfa elong cal proc rod question mine Restructuring Company Even the most successful company can go through a crisis period
Almost Union-Find 並查集的刪除
tar code ctu gin make port i/o scanf ica Almost Union-Find I hope you know the beautiful Union-Find structure. In this problem, you‘re to
並查集的一般操作 ①
flag get 能夠 clas tro lap clu oid operator Rt 題目背景 A地區在地震過後,連接所有村莊的公路都造成了損壞而無法通車。政府派人修復這些公路。 題目描述 給出A地區的村莊數N,和公路數M,公路是雙向的。並告訴你每條公路的連著哪兩個
WHU403 可刪除並查集
ring using break har 出現 sca for printf 我們 我們記錄一下每個元素的編號pid[] 刪除時,將刪除的點編號變為一個先前未出現的值,fa等於他自己 #include<cstdio> #include<cstring>
並查集的一般操作 ④
利潤 分享圖片 gpo 不能 poj hid return %d mes RT 並查集一般操作最後一篇 原題 POJ1456 翻譯: 給定N個商品,每個商品有利潤Pi和過期時間di,每天只能賣一個商品,過期商品不能在賣,求如何安排每天買的商品,可以使收益最大。1≤N,pi
BZOJ 2333 SCOI2011 棘手的操作 並查集+可並堆
swap 否則 cst can 使用 ++ 一個 多少 nio 。。題意概述就不寫了,各位老爺如果是看著玩的可以去搜一下,如果是做題找來的也知道題幹的。實際上是題幹無法縮減懶得復制ORZ 首先處理一下集合的合並和單點值查詢的問題。使用並查集,對於每個點記錄標記d表示這個點的
ZOJ-3261 Connections in Galaxy War---離線操作+逆序並查集
destroy else har 離線操作 ron cti 操作 gin 無連接 題目鏈接: https://cn.vjudge.net/problem/ZOJ-3261 題目大意: 給你一些點,還有一些邊,每個點上都有一個權值,然後有一些詢問,分為兩種,query a 詢