親戚詳解YBT1346

2021-08-14 05:16:38 字數 1206 閱讀 4462

【例4-7】親戚(relation)

時間限制: 1000 ms 記憶體限制: 65536 kb

提交數: 470 通過數: 203

【題目描述】

或許你並不知道,你的某個朋友是你的親戚。他可能是你的曾祖父的外公的女婿的外甥女的表姐的孫子。如果能得到完整的家譜,判斷兩個人是否是親戚應該是可行的,但如果兩個人的最近公共祖先與他們相隔好幾代,使得家譜十分龐大,那麼檢驗親戚關係實非人力所能及。在這種情況下,最好的幫手就是計算機。為了將問題簡化,你將得到一些親戚關係的資訊,如marry和tom是親戚,tom和ben是親戚,等等。從這些資訊中,你可以推出marry和ben是親戚。請寫乙個程式,對於我們的關於親戚關係的提問,以最快的速度給出答案。

【輸入】

輸入由兩部分組成。

第一部分以n,m開始。n為問題涉及的人的個數(1≤n≤20000)。這些人的編號為1,2,3,…, n。下面有m行(1≤m≤1000000),每行有兩個數ai,biai,bi,表示已知aiai和bibi是親戚。

第二部分以q開始。以下q行有q個詢問(1≤ q ≤1000000),每行為ci,dici,di,表示詢問cici和didi是否為親戚。

【輸出】

對於每個詢問ci,dici,di,輸出一行:若cici和didi為親戚,則輸出「yes」,否則輸出「no」。

【輸入樣例】107

2457

1389

1256

2333

47108

9【輸出樣例】

yesno

yes【**】

no

分析:本題要求我們判斷親戚之間的關係,即構造一顆關係樹,查詢子節點與父節點的關係,用並查集再好不過了。

#include 

#include

using

namespace

std;

int fa[20002];//儲存父節點

int ffind(int x)

void uunion(int x,int y)

int main()

int q;

scanf("%d",&q);

while(q--)

return

0;}

執行結果

get結果

thank you!

bye-bye!

控制項深入詳解1

asp datalist id mylist runat server itemtemplate li style list style type none float left width 10 margin 2px auto a href menuleft.aspx?id databinder....

Linux 啟動詳解1

在了解啟動流程之前,我們應該先知道系統的幾個重要指令碼和配置檔案,他們對應的路徑為 1.sbin init 2.etc inittab 3.etc rc.d rc.sysinit 4.etc rc.d rcn.d 這是幾個資料夾n代表數字1,2,3,4.5.etc fstab 檔案介紹 1.關於 s...

python challenge 答案詳解 1

很想學好python,看到乙個教程說下面這個 很有意思,於是就過去咯。這裡主要還是抱著學習的心態給出答案,因此涉及到的函式都會做乙個了解。第0關 就是2的38次方,計算後把結果替換到位址列裡就好了。2 38 274877906944 第1關 這是乙個解謎遊戲。給出了替換的提示,可以很簡單的看出來,密...