PAT 1065 单身狗

https://pintia.cn/problem-sets/994805260223102976/problems/994805266942377984

“单身狗”是中文对于单身人士的一种爱称。本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱。

输入格式:

输入第一行给出一个正整数 N(≤ 50 000),是已知夫妻/伴侣的对数;随后 N 行,每行给出一对夫妻/伴侣——为方便起见,每人对应一个 ID 号,为 5 位数字(从 00000 到 99999),ID 间以空格分隔;之后给出一个正整数 M(≤ 10 000),为参加派对的总人数;随后一行给出这 M 位客人的 ID,以空格分隔。题目保证无人重婚或脚踩两条船。

输出格式:

首先第一行输出落单客人的总人数;随后第二行按 ID 递增顺序列出落单的客人。ID 间用 1 个空格分隔,行的首尾不得有多余空格。

输入样例:

3
11111 22222
33333 44444
55555 66666
7
55555 44444 10000 88888 22222 11111 23333

输出样例:

5
10000 23333 44444 55555 88888

时间复杂度:$O(N * logN)$

代码:

#include <bits/stdc++.h>
using namespace std;

const int maxn = 1e5 + 10;
int a[10010], vis[maxn], out[10010];

int main() {
    int N;
    scanf("%d", &N);
    map<int, int> mp;
    mp.clear();
    for(int i = 1; i <= N; i ++) {
        int x, y;
        scanf("%d%d", &x, &y);
        mp[x] = y;
        mp[y] = x;
    }

    int M;
    scanf("%d", &M);
    memset(vis, 0, sizeof(vis));
    for(int i = 1; i <= M; i ++) {
        scanf("%d", &a[i]);
        vis[a[i]] = 1;
    }

    int num = 0;
    bool flag = false;
    for(int i = 1; i <= M; i ++) {
        if(vis[mp[a[i]]] == 0) {
            num ++;
            out[num] = a[i];
        }
    }

    sort(out + 1, out + num + 1);
    printf("%d\n", num);
    for(int i = 1; i <= num; i ++) {
        printf("%05d", out[i]);
        printf("%s", i != num ? " " : "\n");
    }
    return 0;
}

  

原文地址:https://www.cnblogs.com/zlrrrr/p/9655042.html

时间: 2024-10-12 03:15:55

PAT 1065 单身狗的相关文章

PAT乙级 1065. 单身狗(25) by Python

1065. 单身狗(25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue "单身狗"是中文对于单身人士的一种爱称.本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱. 输入格式: 输入第一行给出一个正整数N(<=50000),是已知夫妻/伴侣的对数:随后N行,每行给出一对夫妻/伴侣--为方便起见,每人对应一个ID号,为5位数字(从00000到99999),ID间以空格分隔:之后给出一

PAT Basic 1065 单身狗 (25 分)

“单身狗”是中文对于单身人士的一种爱称.本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱. 输入格式: 输入第一行给出一个正整数 N(≤ 50 000),是已知夫妻/伴侣的对数:随后 N 行,每行给出一对夫妻/伴侣——为方便起见,每人对应一个 ID 号,为 5 位数字(从 00000 到 99999),ID 间以空格分隔:之后给出一个正整数 M(≤ 10 000),为参加派对的总人数:随后一行给出这 M 位客人的 ID,以空格分隔.题目保证无人重婚或脚踩两条船. 输出格式: 首先第一

1065. 单身狗(25)

“单身狗”是中文对于单身人士的一种爱称.本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱. 输入格式: 输入第一行给出一个正整数N(<=50000),是已知夫妻/伴侣的对数:随后N行,每行给出一对夫妻/伴侣——为方便起见,每人对应一个ID号,为5位数字(从00000到99999),ID间以空格分隔:之后给出一个正整数M(<=10000),为参加派对的总人数:随后一行给出这M位客人的ID,以空格分隔.题目保证无人重婚或脚踩两条船. 输出格式: 首先第一行输出落单客人的总人数:随后第二

1065 单身狗 (25分)

cp[100000] -- 用来记录cp cp[c1] = c2; cp[c2] = c1; yes[100000] -- 用来标记来客是否到场 遍历一下,若该客人有cp且cp到场,将yes[该客人].yes[该客人cp]都置为0 再输出yes为0的值 #include<iostream> #include<algorithm> using namespace std; int main() { int cp_count, total; int i, j; int sum = 0;

PAT 1065. A+B and C (64bit)

1 #include <stdio.h> 2 3 int main() { 4 long n, a, b, c; 5 long i; 6 int ga, gb, gc, r; 7 scanf("%ld", &n); 8 for (i=0; i<n; i++) { 9 scanf("%ld%ld%ld", &a, &b, &c); 10 ga = a >= 0; 11 gb = b >= 0; 12 gc

java 的23种设计模式 之单身狗和隔壁老王的故事

觉得代码写的别扭了,回头翻翻java 的23种设计模式.today,额,这么晚了,困了.就弄个最简单的单例模式吧. 单例模式:俗称单身狗 package singleton; public class SingleTon { private static final class SingleTonBuilder { private static SingleTon singleTon = new SingleTon(); } private SingleTon() { } public stat

phpwamp单身狗模式的详解与分析,单身狗模式/即霸体模式的作用讲解。

最近有学生在使用PHPWAMP的时候,问我霸体模式的作用. 学生问:老师,PHPWAMP里面的霸体模式是什么意思,有什么用? 回答:额...就是以前我发布测试版的时候,模式切换里面的单身狗模式. 学生:单身狗?我表示测试版我没有用过啊.... 早在PHPWAMP8.1.8.8正式版发布之前,我曾经对部分用户发布了8.1.8.8的测试版,测试版里新增了"共生模式"与"单身狗模式",发布没多久网友就纷纷向我吐槽.... 网友A:单身狗模式是什么鬼,名字能不能取的好听点

《Java从入门到放弃》JavaSE入门篇:练习——单身狗租赁系统

今天,我们要玩个大的!!! 我们把之前使用数组做的这个单身狗系统改版成数据库版本,并且使用面向对象里面的一些简单思想.如果有不知道这个系统的看官,请跳转到目录页,然后再选择单身狗系统(数组版)先围观五分钟吧.里面的功能很简单......... 五分钟之后··· 好了,五分钟到了,我们继续吧· 要完成的功能还是如上图所示,只不过实现的代码有翻天覆地的变化而已... 第一步:分析 一般做一个项目,根据侧重点不同,会把整个项目分成三大部分:界面.功能业务实现.数据库操作.具体三层架构的内容,等后面JS

《Java从入门到放弃》JavaSE篇:综合练习——单身狗租赁系统(数组版)

因为现在只学习了基本语法,所以在综合练习之前,先补充关于方法概念. 方法的作用:把一系列的代码放在一起,然后再取个别名.之后通过这个别名的调用,就相当于执行了这一系列的代码. 方法的语法:([]中的内容表示是可选的) public 返回值类型 方法名(参数类型 参数名[,参数类型 参数2 ...]){     //代码块     //[return 数据]; } 方法的例子:     public static void main(String[] args) {         loop();