PAT_甲级_1121 Damn Single

题目大意

有一个长度为N的couple list,列表上每一行的人都互为情侣,现在有M个人来参加晚会,需要按顺序给出没有伴侣的嘉宾

算法思路

使用一个map记录每一个人的couple,对于输入的所有的客人,只要没有出现在couple中,就说明是单身,添加进singles数组中,如果出现在了couple中但是其伴侣不在来访嘉宾中,说明此人也是单身,添加进singles数组中,最后输出singles数组即可。

提交结果

image.png

AC代码

#include
#include
#include
#include

using namespace std;

unordered_map couples;

int main() {
    int n;
    scanf("%d",&n);
    for(int i=0;i guests;
    for(int i=0;i singles;
    for(auto it:guests){
        if(couples[it]==0){
            // 没有出现在couple list上
            singles.push_back(it);
        }else if(guests.find(couples[it])==guests.end()){
            // 出现在了couple list上,但是另外一半没有来
            singles.push_back(it);
        }
    }
    printf("%lu\n",singles.size());
    for(int i=0;i

你可能感兴趣的:(c++算法-数据结构)