洛谷P4092樹 並查集

2022-05-12 12:58:09 字數 778 閱讀 2116

題目:

利用並查集,倒序離線,那麼從倒序來看被撤銷標記的點就再也不會被標記,所以用並查集跳過;

莫名其妙的wa,調了一晚上,好像是dfs的地方有問題,莫名其妙的;注釋掉的是wa的,現有的可以a,不知怎的。

**如下:

#include#include

using

namespace

std;

intconst maxn=100005

;int n,q,head[maxn],ct,fa[maxn],ans[maxn],as

,cnt[maxn],sta[maxn],f[maxn];

bool

b[maxn];

struct

n}edge[maxn

<<1

];int find(int

x)//

void dfs(int x)

////

}void dfs(int u,intx)}

intmain()

for(int i=1;i<=q;i++)

dfs(

1,1);

cnt[

1]=1

;

for(int i=1;i<=n;i++)//

!

for(int k=q;k;k--)

}for(int i=as;i;i--)

printf(

"%d\n

",ans[i]);

return0;

}

洛谷p1525 並查集

先將最大的犯罪都找出來然後將人員分組 假設兩人x,y 如果x 前面已經有過敵人了 那就將y合併到x的敵人裡去 y也是如此若有 將x合併到y的敵人去 如果x 和 y前面都沒有 那麼互相將彼此設為敵人 直到找到矛盾的 就是 xy有同乙個敵人 include include include using n...

並查集 洛谷 P1551 親戚

若某個家族人員過於龐大,要判斷兩個是否是親戚,確實還很不容易,現在給出某個親戚關係圖,求任意給出的兩個人是否具有親戚關係。規定 x和y是親戚,y和z是親戚,那麼x和z也是親戚。如果x,y是親戚,那麼x的親戚都是y的親戚,y的親戚也都是x的親戚。輸入格式 第一行 三個整數n,m,p,n 5000,m ...

並查集模板 洛谷P3367

並查集是一種樹型的資料結構,用於處理一些不相交集合 disjoint sets 的合併及查詢問題。常常在使用中以森林來表示。集就是讓每個元素構成乙個單元素的集合,也就是按一定順序將屬於同一組的元素所在的集合合併。初始化 把每個點所在集合初始化為其自身。通常來說,這個步驟在每次使用該資料結構時只需要執...