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