新型冠狀病毒肺炎(corona virus disease 2019,covid-19),簡稱「新冠肺炎」,是指2019新型冠狀病毒感染導致的肺炎。
如果乙個感染者走入乙個群體,那麼這個群體需要被隔離!
小a同學被確診為新冠感染,並且沒有戴口罩!!!!!!
危!!!
時間緊迫!!!!
需要盡快找到所有和小a同學直接或者間接接觸過的同學,將他們隔離,防止更大範圍的擴散。
眾所周知,學生的交際可能是分小團體的,一位學生可能同時參與多個小團體內。
請你編寫程式解決!戴口罩!!
多組資料,對於每組測試資料:
第一行為兩個整數n和m(n = m = 0表示輸入結束,不需要處理),n是學生的數量,m是學生群體的數量。0 < n <= 3e4 , 0 <= m <= 5e2
學生編號為0~n-1
小a編號為0
隨後,m行,每行有乙個整數num即小團體人員數量。隨後有num個整數代表這個小團體的學生。
輸出要隔離的人數,每組資料的答案輸出佔一行
10042
12510
1311
121420
12992
200215
5123
4510
00
4
11
這裡採用並查集的思想,根據學生是否有直接或間接接觸,對學生進行合併處理,首先同一團體的學生是同一集合,若兩個團體學生有交集,則將兩個集合合併,同時記錄各個集合中的學生數目,最後輸出0號學生所在集合的學生數目即可。
對於多組輸入資料,需在每次處理資料之前,對並查集進行初始化處理。
#include
#include
using
namespace std;
const
int size=
3e4+10;
int v[size]
;int number[size]
;void
ini(
int n)
intfind
(int n)
bool
unite
(int a,
int b)
else
}int
main
(int argc,
char
** ar**)
}printf
("%d\n"
,number[
find(0
)]);
}return0;
}
WEEK6 作業 B 戴好口罩!
新型冠狀病毒肺炎 corona virus disease 2019,covid 19 簡稱 新冠肺炎 是指2019新型冠狀病毒感染導致的肺炎。如果乙個感染者走入乙個群體,那麼這個群體需要被隔離!小a同學被確診為新冠感染,並且沒有戴口罩!危!時間緊迫!需要盡快找到所有和小a同學直接或者間接接觸過的同...
戴好口罩! Week6作業B題
新型冠狀病毒肺炎 corona virus disease 2019,covid 19 簡稱 新冠肺炎 是指2019新型冠狀病毒感染導致的肺炎。如果乙個感染者走入乙個群體,那麼這個群體需要被隔離!小a同學被確診為新冠感染,並且沒有戴口罩!危!時間緊迫!需要盡快找到所有和小a同學直接或者間接接觸過的同...
week6作業題 B 戴好口罩!
新型冠狀病毒肺炎 corona virus disease 2019,covid 19 簡稱 新冠肺炎 是指2019新型冠狀病毒感染導致的肺炎。如果乙個感染者走入乙個群體,那麼這個群體需要被隔離!小a同學被確診為新冠感染,並且沒有戴口罩!危!時間緊迫!需要盡快找到所有和小a同學直接或者間接接觸過的同...