題目描述
或許你並不知道,你的某個朋友是你的親戚。他可能是你的曾祖父的外公的女婿的外甥女的表姐的孫子。如果能得到完整的家譜,判斷兩個人是否是親戚應該是可行的,但如果兩個人的最近公共祖先與他們相隔好幾代,使得家譜十分龐大,那麼檢驗親戚關係實非人力所能及。在這種情況下,最好的幫手就是計算機。為了將問題簡化,你將得到一些親戚關係的資訊,如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」。
樣例輸入
10 7
2 45 7
1 38 9
1 25 6
2 33
3 47 10
8 9樣例輸出
yesno
yes提示
#include #include #include using namespace std;
int father[100010];
int findy(int x)//遞迴尋找根
int main()
scanf("%d",&k);
while(k --)
}return 0;
}
問題 E 例6 5 活動選擇
學校在最近幾天有n個活動,這些活動都需要使用學校的大禮堂,在同一時間,禮堂只能被乙個活動使用。由於有些活動時間上有衝突,學校辦公室人員只好讓一些活動放棄使用禮堂而使用其他教室。現在給出n個活動使用禮堂的起始時間begini begini 和結束時間endi begini di endi begini...
南陽 47 過河問題
解題報告 首先按照過河時間從小到大排序,當n 3時候,就是考慮用最小時間先把用時最長的兩個人送過河,且手電筒仍然留在未過河的這邊,剩下的再依次求解。把當前用時最長的兩個人送過河可以考慮兩種方案 方案一 1 號和 2 號先過河,然後 1 號回來,n 號和 n 1 號過河,然後 2 號再回來 用時 2 ...
E 迷宮問題
定義乙個二維陣列 int maze 5 5 它表示乙個迷宮,其中的1表示牆壁,0表示可以走的路,只能橫著走或豎著走,不能斜著走,要求程式設計序找出從左上角到右下角的最短路線。input 乙個5 5的二維陣列,表示乙個迷宮。資料保證有唯一解。output 左上角到右下角的最短路徑,格式如樣例所示。sa...