专栏文章

题解:UVA11849 CD

UVA11849题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minpsqcm
此快照首次捕获于
2025/12/02 06:22
3 个月前
此快照最后确认于
2025/12/02 06:22
3 个月前
查看原文
这是一道可癌的看不懂的题。

前置知识

思路

题目的意思看前置知识。
因为题目要求只有两个人都有的光盘数量,所以我们可以用总光盘数 - 光盘的并集。
那么就可以用把所有光盘放入 set,set 的大小就是并集的大小,最后输出 n+msizen + m - size
一组测试数据的时间复杂度为 O((n+m)×log(n+m))O((n + m) \times \log(n + m))

Code

CPP
#include<bits/stdc++.h>
using namespace std;
int n,m;
set<int> s;
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	while(true){
		cin >> n >> m;
		if(n == 0 and m == 0){
			break;
		}
		s.clear();
		for(int i = 1;i <= n;i ++){
			int x;
			cin >> x;
			s.insert(x);
		}
		for(int i = 1;i <= m;i ++){
			int x;
			cin >> x;
			s.insert(x);
		}
		cout << n + m - s.size() << '\n';
	}
	return 0;
}

评论

0 条评论,欢迎与作者交流。

正在加载评论...