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

· · 题解

求点赞 qwq!

思路

又是模拟题。

我们把它看作是动态的问题,初始时有 n 个机房可以访问,接着一个一个组被隔离,再统计有多少机房可以访问。

显然当一个小组被隔离时,那么能访问的数量就要减去小组的机房个数。

于是开 n 个桶记录小组内机房的个数即可。

代码

这里的代码极简。

时间复杂度 O(n),空间复杂度 O(n)

#include<bits/stdc++.h>
using namespace std;
const int N=1e5+1;
int n,m,k,u,a,t[N];
signed main(){
    ios::sync_with_stdio(0);cin.tie(0);
    cin>>n>>m>>k;
    for(int i=1;i<=n;i++)cin>>a,t[a]++;
    cin>>u;
    while(k--)cin>>u,n-=t[u];
    cout<<n;
}