資料結構 帶權 種類並查集

2021-10-08 10:56:53 字數 1004 閱讀 1285

/*

給出乙個區間的長度 n,及 m 個子區間和, 形如:x y z, 表示

子區間 [x, y] 的和為 z

如果乙個「子區間和」與前面的「子區間和」衝突,即為錯誤(而且這個「子區間和」將在接下來的判斷中被忽略)。

求總錯誤個數。

帶權並查集

*/#include

#include

#include

using

namespace std;

const

int maxn=

2e5+10;

int fa[maxn]

;int sum[maxn]

;int

getfa

(int x)

}int n,m;

intmain()

int ans=0;

for(

int i=

1;i<=m;i++

)else

}printf

("%d\n"

,ans);}

return0;

}/*種類並查集

*/#include

#include

#include

using

namespace std;

const

int maxn=

50000+10

;int fa[maxn]

,r[maxn]

;//0同類,1表示x吃其祖先,2表示x被祖先吃

intgetfa

(int x)

}int n,k;

intmain()

int d,x,y,ans=0;

for(

int i=

1;i<=k;i++

)else}}

}printf

("%d\n"

,ans)

;return0;

}

帶權並查集種類並查集

帶權並查集 種類並查集 例題 種類並查集 洛谷 p2024 食物鏈 與普通並查集不同是新增加屬性 group i group i 表示它和fa i 的關係,對於這三種種類,同類可以用 0表示,其他兩種分別用 1表示該結點被父節點吃,2表示該節點吃父節點。舉個例子 現在有 pa 3 4 group 3...

種類並查集 帶權並查集

p2024 noi2001 食物鏈 題目描述 動物王國中有三類動物 a,b,c,這三類動物的食物鏈構成了有趣的環形。a 吃 b,b 吃 c,c 吃 a。現有 n 個動物,以 1 n 編號。每個動物都是 a,b,c 中的一種,但是我們並不知道 它到底是哪一種。有人用兩種說法對這 n 個動物所構成的食物...

資料結構 帶權並查集

顧名思義,就是在維護集合關係的樹中新增邊權的並查集,這樣做可以維護更多的資訊。引入題目 比如這道題,如果使用普通的並查集則無法處理,因為普通的並查集只能夠刻畫兩個物品是否屬於同乙個集合。因此這時候就要使用能夠記錄更多資訊的帶權並查集。在閱讀前,需要先掌握並查集的知識。結合題目講解 對於乙個物種 一類...