当前位置: 首页 > news >正文

C++set集合与并查集map映射,哈希表应用实例B3632 集合运算 1P1918 保龄球

集合的性质

  • 无序性
  • 互异性
  • 确定性

B3632 集合运算 1

题面

题目背景

集合是数学中的一个概念,用通俗的话来讲就是:一大堆数在一起就构成了集合。

集合有如下的特性:

  • 无序性:任一个集合中,每个元素的地位都是相同的,元素之间是无序的。

  • 互异性:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次。

  • 确定性:给定一个集合,任给一个元素,该元素或者属于或者不属于该集合,二者必居其一,不允许有模棱两可的情况出现。

元素 a 属于集合 A 记作 a∈A,反之则记作 a∈/A。

若一个集合中不存在任何元素,则称该集合为空集,记作 ∅。空集是所有集合的子集。

一个集合内的元素个数称为该集合的大小。A 集合的大小可记作 ∣A∣。

集合 C 是集合 A 与 B 的交集,当且仅当对于任何元素 a∈C,有 a∈A 且 a∈B,并且对于任何元素 b∈/C,有 b∈/A 或 b∈/B。记作 A∩B。

简单地说,交集是由所有同时属于两个集合的元素所构成的,就像两个集合相交;而并集是由所有属于其中任意一个集合的元素所构成的,就像两个集合合并。

特别地,对于形如 {x∣a≤x≤b} 的集合,可以记作 [a,b]。其中,如果左侧符号改为小于号,则左侧中括号改为小括号。右侧同理。

题目描述

现在给予两个集合 A 和 B,均由 00 到 6363 之间的整数组成。

请依次求出:

  • ∣A∣
  • A∩B
  • A∪B

输入格式

输入四行。

第一行一个整数 x(0≤x≤63),表示集合 A 的元素个数。

第二行 x 个整数 a1​,...ax​,表示集合 A 的各个元素,保证不重复。如果 A 是空集,则这一行没有数字。

第三行一个整数  y(0≤y≤63),表示集合 B 的元素个数。

第四行 y 个整数 b1​,...bx​,表示集合 B 的各个元素,保证不重复。如果 B 是空集,则这一行没有数字。

输出格式

输出三行。

第一行输出一个整数,表示 ∣A∣。

第二行输出若干个整数,表示 A∩B 中对应元素,从小到大输出,用空格隔开。如果是空集,则这一行什么也不输出,保留换行。

第三行输出若干个整数,表示 A∪B 中对应元素,从小到大输出,用空格隔开。如果是空集,则这一行什么也不输出,保留换行。

输入输出样例

输入 #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的方法有很多种,根据这道题目的要求可以做出以下输出

循环,如果读到了一个数,就将 a 数组对应的元素标记为 1

循环,如果读到了一个数,就将 b 数组对应的元素标记为 1

循环,i 从 0 到 63,输出 A 和 B 的交集

如果 i 同时在集合 A 和 B 中,说明它是 A∩B 的元素。

循环,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 对应的元素标记为 1}int sizeA = 0; // 集合 A 的大小// 循环,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 对应的元素标记为 1}// 循环,i 从 0 到 63,输出 A 和 B 的交集for (int i = 0; i < 63; i++) {if (a[i] == 1 && b[i] == 1) {cout << i << " "; // 输出交集元素}}cout << endl;// 循环,i 从 0 到 63,输出 A 和 B 的并集for (int i = 0; i < 63; i++) {if (a[i] == 1 || b[i] == 1) {cout << i << " "; // 输出并集元素}}return 0;
}

http://www.lryc.cn/news/134615.html

相关文章:

  • easyexcel合并单元格底色
  • OpenCV图片校正
  • 数字孪生流域共建共享相关政策解读
  • FSC147数据集格式解析
  • el-element中el-tabs案例的使用
  • tomcat结构目录有哪些?
  • 生成式AI系列 —— DCGAN生成手写数字
  • vscode-vue项目格式化+语法检验-草稿
  • 【Java从0到1学习】10 Java常用类汇总
  • 第三届人工智能与智能制造国际研讨会(AIIM 2023)
  • 层次分析法
  • Error Handling
  • leetcode:字符串相乘(两种方法)
  • 【爬虫练习之glidedsky】爬虫-基础2
  • 03.有监督算法——决策树
  • 网络协议详解之STP
  • Eltima USB Network Gate 10.0 Crack
  • SpringCloudGateway网关实战(一)
  • django中使用ajax发送请求
  • C++之std::list<string>::iterator迭代器应用实例(一百七十九)
  • VSCode好用的插件
  • js实现滚轮滑动到底部自动加载(完整版)
  • 如何限制PDF打印?限制清晰度?
  • python计算模板图像与原图像各区域的相似度
  • 阿里云云解析DNS核心概念与应用
  • 计算机竞赛 垃圾邮件(短信)分类算法实现 机器学习 深度学习
  • compositionAPI
  • vscode配置调试环境-windows系统
  • 智慧城市能实现嘛?数字孪生又在其中扮演什么角色?
  • 【置顶帖】关于博主/关于博客/博客大事记