“桶”

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
使用桶可以为目标数做标记缩短时间

posted @ 2024-01-26 17:39  CXfang10  阅读(16)  评论(0)    收藏  举报