箱と鍵 (Boxes and Keys) 题解

题目传送门

题目大意

给定一个长度为 \(n\) 的数组 \(a\) 和一个长度为 \(m\) 的数组 \(b\),求 \(a\) 中有多少个数在 \(b\) 中出现过。

解题思路

数据比较小,可以直接暴力:

从数组 \(a\) 中查找 是否有 \(b_i\),有计数器加一,为了避免重复,只要出现一次,就要跳出循环;时间复杂度 \(O(nm)\)

代码

AC记录

#include<bits/stdc++.h>
#define ri register int
using namespace std;
int n,m,a[1001],b[1001],ans=0;
void cmp(int ans);
int main() {
	cin>>n>>m;
	for(ri i=1; i<=n; i++) cin>>a[i];
	for(ri i=1; i<=m; i++) cin>>b[i];
	cmp(ans);
	return 0;
}
void cmp(int sum) {
	for(ri i=1; i<=n; i++)
		for(int j=1; j<=m; j++)
			if(a[i]==b[j]){sum++;break;}
	cout<<sum<<'\n';
}
posted @ 2022-12-25 14:51  Ggsddu_zzy  阅读(11)  评论(0编辑  收藏  举报