河北 全部陽性了汕頭seo排名
集合的性質(zhì)
- 無序性
- 互異性
- 確定性
B3632 集合運算 1
題面
題目背景
集合是數(shù)學中的一個概念,用通俗的話來講就是:一大堆數(shù)在一起就構(gòu)成了集合。
集合有如下的特性:
-
無序性:任一個集合中,每個元素的地位都是相同的,元素之間是無序的。
-
互異性:一個集合中,任何兩個元素都認為是不相同的,即每個元素只能出現(xiàn)一次。
-
確定性:給定一個集合,任給一個元素,該元素或者屬于或者不屬于該集合,二者必居其一,不允許有模棱兩可的情況出現(xiàn)。
元素?a?屬于集合?A?記作 a∈A,反之則記作 a∈/A。
若一個集合中不存在任何元素,則稱該集合為空集,記作??。空集是所有集合的子集。
一個集合內(nèi)的元素個數(shù)稱為該集合的大小。A?集合的大小可記作 ∣A∣。
集合?C?是集合?A?與?B?的交集,當且僅當對于任何元素 a∈C,有 a∈A?且 a∈B,并且對于任何元素 b∈/C,有 b∈/A?或?b∈/B。記作 A∩B。
簡單地說,交集是由所有同時屬于兩個集合的元素所構(gòu)成的,就像兩個集合相交;而并集是由所有屬于其中任意一個集合的元素所構(gòu)成的,就像兩個集合合并。
特別地,對于形如 {x∣a≤x≤b}?的集合,可以記作 [a,b]。其中,如果左側(cè)符號改為小于號,則左側(cè)中括號改為小括號。右側(cè)同理。
題目描述
現(xiàn)在給予兩個集合?A?和?B,均由?00?到?6363?之間的整數(shù)組成。
請依次求出:
- ∣A∣
- A∩B
- A∪B
輸入格式
輸入四行。
第一行一個整數(shù) x(0≤x≤63),表示集合?A?的元素個數(shù)。
第二行?x?個整數(shù) a1?,...ax?,表示集合?A?的各個元素,保證不重復。如果?A?是空集,則這一行沒有數(shù)字。
第三行一個整數(shù)? y(0≤y≤63),表示集合?B?的元素個數(shù)。
第四行 y?個整數(shù) b1?,...bx?,表示集合?B?的各個元素,保證不重復。如果?B?是空集,則這一行沒有數(shù)字。
輸出格式
輸出三行。
第一行輸出一個整數(shù),表示?∣A∣。
第二行輸出若干個整數(shù),表示 A∩B?中對應(yīng)元素,從小到大輸出,用空格隔開。如果是空集,則這一行什么也不輸出,保留換行。
第三行輸出若干個整數(shù),表示 A∪B?中對應(yīng)元素,從小到大輸出,用空格隔開。如果是空集,則這一行什么也不輸出,保留換行。
輸入輸出樣例
輸入 #1
4 1 3 5 8 3 3 6 8
輸出 #1
4 3 8 1 3 5 6 8
輸入 #2
04 1 2 3 4
輸出 #2
01 2 3 4
題解
使用set的方法有很多種,根據(jù)這道題目的要求可以做出以下輸出
循環(huán),如果讀到了一個數(shù),就將 a 數(shù)組對應(yīng)的元素標記為 1
循環(huán),如果讀到了一個數(shù),就將 b 數(shù)組對應(yīng)的元素標記為 1
循環(huán),i 從 0 到 63,輸出 A 和 B 的交集
如果 i 同時在集合 A 和 B 中,說明它是 A∩B 的元素。
循環(huán),i 從 0 到 63,輸出 A 和 B 的并集
如果 i 在集合 A 或 B 至少一個集合,說明它是 A∪B 的元素。
代碼
#include<iostream>
using namespace std;
int a[65], b[65], x, y, tmp;
int main() {// 讀入 xcin >> x;for (int i = 0; i < x; i++) {cin >> tmp;a[tmp] = 1; // 將集合 A 對應(yīng)的元素標記為 1}int sizeA = 0; // 集合 A 的大小// 循環(huán),i 從 0 到 64,計算集合 A 的大小for (int i = 0; i < 65; i++) {if (a[i] == 1) {sizeA++;}}cout<<sizeA<<endl;// 讀入 ycin >> y;for (int i = 0; i < y; i++) {cin >> tmp;b[tmp] = 1; // 將集合 B 對應(yīng)的元素標記為 1}// 循環(huán),i 從 0 到 63,輸出 A 和 B 的交集for (int i = 0; i < 63; i++) {if (a[i] == 1 && b[i] == 1) {cout << i << " "; // 輸出交集元素}}cout << endl;// 循環(huán),i 從 0 到 63,輸出 A 和 B 的并集for (int i = 0; i < 63; i++) {if (a[i] == 1 || b[i] == 1) {cout << i << " "; // 輸出并集元素}}return 0;
}