hdu1272 1325 並查集判環及森林問題

2021-08-08 23:34:17 字數 1033 閱讀 2096

題意:給乙個圖,如果圖里有環或者是森林就輸出"no"

注意空圖算"yes"

並查集判環:合併集合時,如果出現自己並自己的情況,就說明出現了環

1272:

#include using namespace std;

const int maxn=1e6+10;

int parent[maxn],ranc[maxn];

int serc(int pos)

return pos;

}void init()

}void merg(int x,int y)

int sum=0;

if(!flag)

for(int i=1;i<=maxn;i++)}}

if(flag)cout<<"no"<1325把樹搞成了有向邊

只需要在上面那題**裡面加乙個記錄每個點有沒有過雙親節點

//還有一點,輸入結束標誌是負數而不是-1 -1

#include using namespace std;

const int maxn=1e6+10;

int parent[maxn],ranc[maxn];

bool hasparent[maxn];

int serc(int pos)

return pos;

}void init()

}void merg(int x,int y)

hasparent[cur2]=true;

s[cur1]=true;

s[cur2]=true;

if(serc(cur1)==serc(cur2))flag=true;

merg(cur1,cur2);

if(cur1>maxn)maxn=cur1;

if(cur2>maxn)maxn=cur2;}}

int sum=0;

if(!flag)

for(int i=1;i<=maxn;i++)}}

if(flag)cout<<"case "<<++ppp<<" is not a tree."<

hdu 4514 並查集判環)

tencent昨天比賽的題目,昨天看的時候沒什麼思路,今天在網上搜了一下,說是可以用並查集做。果然,過了。看來還是做的題不夠多啊!思路 並查集判環,並把每次的邊權值都加到根結點的上去,最後求每個根結點權值的最大值就行了。orz 1 include2 include3 const int n 1000...

HDU 1272 並查集判環

上次gardon的迷宮城堡小希玩了很久 見problem b 現在她也想設計乙個迷宮讓gardon來走。但是她設計迷宮的思路不一樣,首先她認為所有的通道都應該是雙向連通的,就是說如果有乙個通道連通了房間a和b,那麼既可以通過它從房間a走到房間b,也可以通過它從房間b走到房間a,為了提高難度,小希希望...

並查集判環(裸

題目大意 有一些化合物,每個化合物都由兩種元素組成的 每個元素用乙個大寫字母表示 你是乙個裝箱的工人,從實驗員那裡按照順序依次把一些簡單化合物裝到車上。但這裡存在乙個安全隱患 如果車上存在k個簡單的化合物,正好包含k中元素,那麼它們將組成乙個易爆的混合物。為了安全起見,每當你拿到乙個化合物時,如果它...