杭電ACM1272(並查集)

2021-08-16 21:49:46 字數 742 閱讀 8818

題目大意:中文題目

解題思路:並查集。題目要求的迷宮有兩個特點:1:無環、2:單根,因此,若同一邊上的兩個點擁有相同的父節點,則可以認為有環,最後加乙個掃瞄,判斷根節點個數。

ac**:

[cpp]

view plain

copy

#include 

using

namespace

std;  

intfather[100005];  

bool

flag ,visit[100005];  

intgetfather(

intn)  

void

myunion(

intx,

inty)  

intmain()  

for(int

i=1;i<100005;i++)  

visit[n] = visit[m] = 1;  

flag = 1;  

myunion(n,m);  

while

(cin>>n>>m)  

num=0;  

for(

inti=1;i<100005;i++)  

if(flag)cout<<

"yes"

<

else

cout<<

"no"

<

}  return

0;  

}   

杭電1272 並差集

原題傳送門,並差集模板詳解鏈結,大佬並差集詳解鏈結。解題思路 1 判斷是否有環 2 判斷所有的房子是否連在一起。第一點可以通過same函式判斷,在輸入的時候就可以判斷 第二點可以先通過vis陣列標記,然後遍歷vis陣列,當vis i 1並且id i i的時候,說明i是最上面的父親。再符合條件的情況下...

hdu杭電1272 小希的迷宮 並查集

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

杭電ACM1269 迷宮城堡 並查集

這題,可以用並查集來解決。需要用到兩個陣列來判斷從i到j以及j到i的是否屬於同乙個並查集。下面的是ac的 include include using namespace std int par 2 10005 int n,m int finds int x,int i void join int x...