https://www.luogu.com.cn/problem/B3691?contestId=154692
`
include<bits/stdc++.h>
using namespace std;
int n, m;
int a[500005], b[500005], c[5000005], d[5000005];
int main(){
cin >> n >> m;
for(int i = 1; i <= n; ++i){
scanf("%d", &a[i]);
}
for(int i = 1; i <= m; ++i){
scanf("%d", &b[i]);
}
**for(int i = 1; i <= m; ++i){**
** c[b[i]] = 1; \ 桶**
** }**
** for(int i = 1; i <= n; ++i){**
** if(c[a[i]] == 1){ **
** d[i] = 1;**
** }**
** }**
d[0] = 1;
int cnt = 0;
for(int i = 1; i <= n; ++i){
if(d[i] == 0 && d[i - 1] == 1) cnt++;
}
cout << cnt << endl;
return 0;
}
`
如果使用双重循环会PD
使用桶可以为目标数做标记缩短时间