题解:P16437 [XJTUPC 2026] 全都登不上 2
MengTian1120 · · 题解
前言
本篇题解的解题方法为:模拟。
题目大意
题目还是比较好理解的。
:::info[题目]
有
神秘管理员误操作,将
请你计算:在隔离了这
有
管理员将
求隔离后,仍然能够访问 OJ 服务器的机房总数。
解题思路
- 服务器所在小组
v :不会被隔离,其内部所有机房都能直接访问服务器。 - 其他未被隔离的小组:可与
v 组通信,其内部所有机房也都能访问服务器。 - 被隔离的小组:无法与其它组通信,且服务器不在本组,其内部机房完全无法访问服务器。
到这里,结论很简单就出来了:
代码实现
我们用一个二维动态数组来存储每个小组包含的机房编号。
其实我这里多余了,只需要统计次数就行了,读者可以试试。
代码实现还是比较简单的。
AC 代码
#include <bits/stdc++.h>
using namespace std;
vector <int> a[100005];
int n,m,k,v;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
cin>>n>>m>>k;
for(int i=1;i<=n;i++){
int tmp;
cin>>tmp;
a[tmp].push_back(i);
}
cin>>v;
int ans=n;
while(k--){
int tmp;
cin>>tmp;
ans-=a[tmp].size();
}
cout<<ans;
return 0;
}
record
后记
这是本蒟蒻的第
给个赞再走呗!