在一大堆秀恩愛的**之中,來不及秀恩愛的蘇大學神踏著堅定(?)的步伐走向了100公尺跑的起點。這時蘇大學神發現,百公尺賽跑的參賽同學實在是太多了,連體育老師也忙不過來。這時體育老師發現了身為體育委員的蘇大學神,便來找他幫忙。可是蘇大學神需要熱身,不然跑到一半就會抽(筋)、於是他就找到了你。。。如果你幫助體育老師解決了問題,老師就會給你5個積分。
假設一共有n(2<=n<=20000)個參賽選手。(尼瑪全校學生都沒這麼多吧)
老師會告訴你這n個選手的名字。
接著會告訴你m(1<=m<=1000000)句話,即告訴你學生a與學生b在同乙個組裡。
如果學生a與學生b在同一組裡,學生b與學生c也在同一組裡,就說明學生a與學生c在同一組。
然後老師會問你k(1<=k<=1000000)句話,即學生x和學生y是否在同一組裡。
若是則輸出"yes.",否則輸出"no."
第一行輸入n和m。
接下來n行輸入每乙個同學的名字。
再往下m行每行輸入兩個名字,且保證這兩個名字都在上面的n行**現過,表示這兩個參賽選手在同乙個組裡。
再來輸入k。
接下來輸入k個體育老師的詢問。
對於每乙個體育老師的詢問,輸出"yes.「或"no.」。
10 6
jack
mike
asda
michel
brabrabra
hehe
hehe
papapa
heyobama
jack obama
hehe hehe
brabrabra hehe
obama asda
papapa obama
obama hehe
3mike obama
hehe jack
papapa brabrabra
no.yes.
yes.
並查集水題。
#include
#define m(a,b) memset(a,b,sizeof(a))
#define pi 3.1415926
using
namespace std;
struct nodear[
1000];
int i,j,a,b,n,m,k,fa[
1000];
inline
void
read
(int
&x)while
(ch>=
'0'&& ch<=
'9')
if(c==
'-')x=
-x;}
intfind
(int x)
intmain()
for(i=
0;i) fa[
find
(ar[a]
.b)]
=find
(ar[b]
.b);
}scanf
("%d"
,&k)
;for
(i=0
;i(find
(ar[a]
.b)==
find
(ar[b]
.b))
printf
("yes.\n");
else
printf
("no.\n");
}return0;
}
洛谷P2256 一中校運會之百公尺跑
在一大堆秀恩愛的 之中,來不及秀恩愛的蘇大學神踏著堅定 的步伐走向了100公尺跑的起點。這時蘇大學神發現,百公尺賽跑的參賽同學實在是太多了,連體育老師也忙不過來。這時體育老師發現了身為體育委員的蘇大學神,便來找他幫忙。可是蘇大學神需要熱身,不然跑到一半就會抽 筋 於是他就找到了你。如果你幫助體育老師...
P2256 一中校運會之百公尺跑(洛谷)
題目傳送門 方法 這是一道赤裸裸的並查集題目,根據輸入先進行合併,合併後根據輸入開始查詢判斷即可。需要注意的是,為了簡化題目,實際操作過程中可以用編號來對應姓名,從而表示出不同的學生,並建立相應的聯絡。實現 include include using namespace std 一看這個問題是組間分...
LUOGU 2256一中校運會之百公尺跑
在一大堆秀恩愛的 之中,來不及秀恩愛的蘇大學神踏著堅定 的步伐走向了100公尺跑的起點。這時蘇大學神發現,百公尺賽跑的參賽同學實在是太多了,連體育老師也忙不過來。這時體育老師發現了身為體育委員的蘇大學神,便來找他幫忙。可是蘇大學神需要熱身,不然跑到一半就會抽 筋 於是他就找到了你。如果你幫助體育老師...