數據星部落管理系統
在遙遠的阿爾法星系,有一個神秘的行星名為「數據星」。數據星上住著多個部落,每個部落都有一群部落成員,彼此協作互助。 但隨著星球上的資源日益稀缺,部落之間的關係也變得複雜起來,許多部落開始進行合作與合併,有時甚至要剔除部落中的重複成員來減少內部摩擦。
作為星際聯盟的駐星官,你被指派到數據星去協助他們解決這些衝突與合作需求。星球上的部落長老們提出了一系列的操作需求, 而你需要根據這些需求進行相應的操作來幫助各部落和諧共處。
輸入說明
- 第一行包含一個整數
T
,代表測試案例的數量 (1 ≤ T ≤ 1000)。 - 對於每個測試案例:
- 第一行包含兩個整數
group
和queries
:group
表示部落的總數量 (1 ≤ group ≤ 50000)。queries
表示該測試案例中的操作次數 (1 ≤ queries ≤ 100000)。
- 接下來的
queries
行,每行包含一個操作:- 每行格式為
op x a
或op x y
,根據操作類型的不同選項如下:op
表示操作類型,x
和y
是部落編號,a
是成員編號。x
和y
的範圍為 (1 ≤ x, y ≤ group)。a
的範圍為 (1 ≤ a ≤ 64)。
- 具體操作說明:
op = 1
:在部落x
中加入成員a
。op = 2
:從部落x
中移除成員a
。op = 3
:將部落y
的所有成員合併到部落x
中。op = 4
:剔除部落x
和部落y
中的重複成員。op = 5
:查詢成員a
是否存在於部落x
中,若存在回傳1
,否則回傳0
。
- 每行格式為
- 第一行包含兩個整數
輸出說明
對於每一個查詢操作 (op = 5
),請輸出查詢結果:
- 若成員
a
存在於指定部落x
中,輸出1
;否則輸出0
。
操作說明
在每一個測試案例中,你會面對數據星上特定數量的部落(稱為「群組」),每個部落由一組成員(以數字表示)構成。 每個部落長老會提出一系列操作要求,包括:
- 增加成員 - 某些部落可能會招募新的成員加入。
- 移除成員 - 當部落發現成員不合適或是想要簡化組織結構時,他們會選擇移除成員。
- 合併部落 - 有時部落間會達成協議,決定合併彼此的成員以增強力量。
- 剔除重複成員 - 部落間的重複成員可能會引發內部矛盾,因此需要剔除重複的成員。
- 成員查詢 - 部落長老會查詢某個特定成員是否存在於自己的部落中,確認該成員是否仍然效忠於部落。
你需要依照以下步驟來進行操作:
- 增加成員(
op = 1
):將數字a
加入到目標部落x
。 - 移除成員(
op = 2
):將數字a
從目標部落x
中移除。 - 合併部落(
op = 3
):將部落y
的所有成員合併到部落x
中。 - 剔除重複成員(
op = 4
):從在部落x
中,踢除部落x
和部落y
中剔除重複的成員,確保兩個部落內部沒有重複成員。 - 成員查詢(
op = 5
):查詢成員a
是否在部落x
中,若存在則回傳1
,否則回傳0
。
範例
範例輸入
2
3 4
1 2 5
3 1 2
5 1 5
4 1 3
2 3
1 1 10
2 1 10
5 1 10
範例輸出
1
0
範例輸入說明
2
Test Case 1:
3 4 // 三個部落,四個操作
1 2 5 // 在部落2中加入成員5
3 1 2 // 合併部落2到部落1
5 1 5 // 查詢成員5是否在部落1中
4 1 3 // 剔除部落1與部落3之間的重複成員
Test Case 2:
2 3 // 兩個部落,三個操作
1 1 10 // 在部落1中加入成員10
2 1 10 // 從部落1中移除成員10
5 1 10 // 查詢成員10是否在部落1中
說明
在第一個測試案例中:
- 執行
1 2 5
,將成員5
加入到部落2
。 - 執行
3 1 2
,將部落2
合併到部落1
,此時部落1
包含成員5
。 - 執行
5 1 5
,查詢成員5
是否在部落1
中,輸出1
(表示存在)。 - 執行
4 1 3
,剔除部落1
中 和部落3
中的重複成員。
- 執行
在第二個測試案例中:
- 執行
1 1 10
,將成員10
加入到部落1
。 - 執行
2 1 10
,將成員10
從部落1
移除。 - 執行
5 1 10
,查詢成員10
是否在部落1
中,輸出0
(表示不存在)。
- 執行
子任務
為了評估不同條件下的效能,我們將題目分為兩個子任務:
子任務 1 (40 分)
- \(1 <= T <= 10,1 <= groups <= 100,1 <= queries <= 200, 1 <= a <= 64\)
- 針對較小數量的部落和操作設計,以測試基本邏輯的正確性。
子任務 2 (60 分)
- \(1 <= T <= 1000,1 <= groups <= 50000,1 <= queries <= 100000, 1 <= a <= 64\)
- 面對大量的部落和操作設計,測試程式在大量資料時的效率。
14:25 op = 4 x y remove duplicates in x from x and y 你需要撰寫程式來處理這些操作,幫助數據星的部落維持和諧穩定。準備好開始這趟數據星之旅了嗎?讓我們開始執行這些操作,協助部落長老們順利解決他們的需求吧!
评论