2020HBU天梯賽訓練 7 50 部落

2021-10-02 18:12:15 字數 1304 閱讀 8553

7-31

家庭房產

並查集【2020hbu天梯賽訓練】7-31 家庭房產

2023年2月1日11:32:45

並查集合並是改變根節點的父親

7-34

排座位並查集

【2020hbu天梯賽訓練】7-34 排座位

2023年1月31日18:46:30

複習並查集

7-50

部落並查集

2023年2月12日10:33:09

犯了7-34排座位相同錯誤

在乙個社群裡,每個人都有自己的小圈子,還可能同時屬於很多不同的朋友圈。我們認為朋友的朋友都算在乙個部落裡,於是要請你統計一下,在乙個給定社群中,到底有多少個互不相交的部落?並且檢查任意兩個人是否屬於同乙個部落。

輸入在第一行給出乙個正整數n(≤10​4​​),是已知小圈子的個數。隨後n行,每行按下列格式給出乙個小圈子裡的人:

k p[1] p[2] ⋯ p[k]

其中k是小圈子裡的人數,p[i](i=1,⋯,k)是小圈子裡每個人的編號。這裡所有人的編號從1開始連續編號,最大編號不會超過10​4​​。

之後一行給出乙個非負整數q(≤10​4​​),是查詢次數。隨後q行,每行給出一對被查詢的人的編號。

首先在一行中輸出這個社群的總人數、以及互不相交的部落的個數。隨後對每一次查詢,如果他們屬於同乙個部落,則在一行中輸出y,否則輸出n

4

3 10 1 2

2 3 4

4 1 5 7 8

3 9 6 4

210 5

3 7

10 2

yn

#include#includeusing namespace std;

int fa[10005];

int findfa(int x)return x;

}settotal;

int unionfa(int a,int b)else fa[findb]=finda;

}int main()

} setcnt;

for(auto it = total.begin();it!=total.end();it++)printf("%d %d\n",total.size(),cnt.size());

cin>>n;

for(int i=0;i>a>>b;

if(findfa(a)==findfa(b))cout<<"y"

}

2020HBU天梯賽訓練 7 14 福到了

福 字倒著貼,寓意 福到 不論到底算不算民俗,本題且請你編寫程式,把各種漢字倒過來輸出。這裡要處理的每個漢字是由乙個 n n 的網格組成的,網格中的元素或者為字元 或者為空格。而倒過來的漢字所用的字元由裁判指定。輸入在第一行中給出倒過來的漢字所用的字元 以及網格的規模 n 不超過100的正整數 其間...

2020HBU天梯賽訓練 7 15 誰是贏家

7 15 誰是贏家 某電視台的娛樂節目有個表演評審環節,每次安排兩位藝人表演,他們的勝負由觀眾投票和 3 名評委投票兩部分共同決定。規則為 如果一位藝人的觀眾票數高,且得到至少 1 名評委的認可,該藝人就勝出 或藝人的觀眾票數低,但得到全部評委的認可,也可以勝出。節目保證投票的觀眾人數為奇數,所以不...

2020HBU天梯賽訓練 7 16 猜數字

7 16 猜數字 一群人坐在一起,每人猜乙個 100 以內的數,誰的數字最接近大家平均數的一半就贏。本題就要求你找出其中的贏家。輸入在第一行給出乙個正整數n 10 4 隨後 n 行,每行給出乙個玩家的名字 由不超過8個英文本母組成的字串 和其猜的正整數 100 在一行中順序輸出 大家平均數的一半 只...