文章
6
粉丝
58
获赞
0
访问
3.5k
重点:set的使用
set<int> s3(s1); // 可以把s3置为和s1相同
思路:先读一个集合s1,设置空集s2存放交集(输入第二组元素时若s1中有放入s2),设置和s1相同的集合s3(输入第二组元素时若s1没有则读入并集s3)
#include <iostream>
#include <set>
using namespace std;
int main() {
int n, m;
cin >> n;
cin >> m;
set<int> s1;
// 读入第一组数字,放入集合s1
for (int i = 0; i < n; i++) {
int a;
cin >> a;
s1.insert(a);
}
set<int> s2; // s2用于存放第二组数字
set<int> s3(s1); // s3初始与s1相同,用于计算并集
// 读入第二组数字
for (int j = 0; j < m; j++) {
int b;
cin >> b;
if (s1.count(b)) {
// 如果b在s1中,加入s2(交集)
s2.insert(b);
}
// 无论b是否在s1中,都加入s3(并集)
s3.insert(b);
}
// 输出交集和并集的大小
cout << s2.size() << " " << s3.size();
return 0;
}
登录后发布评论
暂无评论,来抢沙发