題目大意:中文題目
解題思路:並查集。題目要求的迷宮有兩個特點: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...