官方题解|未出现的人
2025-06-23 03:25:23
发布于:浙江
4阅读
0回复
0点赞
未出现的人
题目大意
题目的要求是现在有 个姓名互不相同的同学, 其中 个人出席了本场会议,求未出场本比赛的学生的名单。
题解思路
我们可以采用标记法来解决这一问题。首先,建立一个数据容器,将所有原计划参加讲座的学生姓名依次存储其中,构建完整的学生列表。接着,在记录实际出席学生的过程中,对已出现的学生姓名在列表中进行标记,以此区分出席与未出席的学生。最后,对存储学生姓名的列表进行遍历,将所有未被标记的学生姓名输出,这些学生即为缺席讲座的人员,如此便能清晰呈现缺席学生名单 。
参考代码
#include<bits/stdc++.h>
using namespace std;
using i64 = long long;
using i32 = int32_t;
int main() {
int n, m;
cin >> n >> m;
vector<int> vis(n + 1);
map<string, int> mp;
vector<string> arr(n + 1);
for (int i = 1; i <= n; i++) {
string s;
cin >> s;
mp[s] = i;
arr[i] = s;
}
for (int i = 1; i <= m; i++) {
string s;
cin >> s;
vis[mp[s]] = 1;
}
for (int i = 1; i <= n; i++) {
if (!vis[i]) cout << arr[i] << endl;
}
}
这里空空如也
有帮助,赞一个