B - Call the ID Number
题目大意
有 N 个人,编号为 1∼N。每个人都有一张卡片,第 i 个人的卡片上写的是 Ai。
现在从第一个人开始,如果这个人没有被喊过,就喊一下他卡片上写着的人。
问最终有多少个人从没被喊过。
解题思路
使用桶进行标记,方便从小到大输出
代码
#include <bits/stdc++.h>
#define int long long
using namespace std;
bool t[200005];
signed main() {
int n,sum = 0;
cin >> n;
for(int i =1; i <= n; i++){
int x;
cin >> x;
if(t[i]!=1) {
//没有被报过ID的进行标记
t[x] = 1;
}
}
for(int i =1; i <= n ; i++){
//记录有多少个没有报
if(t[i]==0) sum++;
}
cout << sum << "\n";
for(int i