• PAT(Advanced Level)A1121. Damn Single


    题意

    给出很多情侣,开聚会,看聚会上的哪些人是“单身狗”

    思路

    • 开2个unordered_map<int, int>来记住情侣关系,记住谁有伴侣谁没有
    • 开一个flag数组,标记出现在聚会上的人
    • “单身狗”要么是本来就没有伴侣的,要么是伴侣没有一起来聚会的

    代码

    #include <iostream>
    #include <vector>
    #include <queue>
    #include <unordered_map>
    #include <algorithm>
    #include <string.h>
    using namespace std;
    int flag[100010] = {0};
    int main() {
        int couples, u, v;
        scanf("%d", &couples);
        unordered_map<int, int> mp;             // 记住情侣关系
        unordered_map<int, int> has_couple;     // 记录谁有伴侣谁没有
        for(int i = 0; i < couples; i++) {
            scanf("%d %d", &u, &v);
            mp[u] = v;
            mp[v] = u;
            has_couple[u] = has_couple[v] = 1;
        }
        
        int num;
        scanf("%d", &num);
        vector<int> dogs;
        vector<int> party;
        party.resize(num);
        for(int i = 0; i < num; i++) {
            scanf("%d", &party[i]);
            flag[party[i]] = 1;
        }
        for(auto i: party) {
            // 没有伴侣 || 伴侣没来 就被我们视为单身狗
            if(has_couple[i] == 0 || flag[mp[i]] == 0)
                dogs.emplace_back(i);
        }
        sort(dogs.begin(), dogs.end());
        cout << dogs.size() << endl;
        // 注意如果没有单身狗就不用输出名单了
        if(dogs.size() != 0) {
            printf("%05d", dogs.front());
            for(int i = 1; i < dogs.size(); i++)
                printf(" %05d", dogs[i]);
        }
        return 0;
    }
    
    如有转载,请注明出处QAQ
  • 相关阅读:
    通俗易懂的讲解iphone视图控制器的生命周期
    HTML5学习(十一)---服务器发送事件
    HTML5学习(十)---Web Workers
    HTML5学习(九)----应用程序缓存
    HTML5学习(八)----Web存储
    HTML5学习(七)----地理定位
    HTML5学习(六)---------SVG 与Canvas
    HTML5学习(五)----SVG
    HTML5学习(四)---Canvas绘图
    第六章在U盘上运行openwrt(引导)--补
  • 原文地址:https://www.cnblogs.com/MartinLwx/p/14530217.html
Copyright © 2020-2023  润新知