题解:P16437 [XJTUPC 2026] 全都登不上 2

· · 题解

这么简单的题没有人交题解?

题目思路

可以定义一个 set 集合,把被隔离的小组放里面,最后循环 m,让结果加上没有隔离的小组的机房总数。

代码

#include <bits/stdc++.h>
using namespace std;
set<int> st;
int x,n,k,v,m,b[100005],ans;
int main(){
    cin>>n>>m>>k;
    for(int i=1;i<=n;i++) cin>>x,b[x]++;
    cin>>v;
    for(int i=1;i<=k;i++) cin>>x,st.insert(x);
    for(int i=1;i<=m;i++)
        if(st.find(i)==st.end())//这里是判断第i个小组是否没有被隔离
            ans+=b[i];
    cout<<ans;
    return 0;
}