P1065 单身狗

转跳点:

1065 单身狗 (25分)

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

输入格式:

输入第一行给出一个正整数 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

我抗议,这是一道单身狗歧视的题! ! ! (为什么分值最多的题要提及这么沉重的话题,拉仇恨啊

这道题我AC思路是,通过在数组上存储形成情侣之间的相互映射来实现非单身狗标记

然后是逐一读取来客ID

如果ID有对应值, 说明有配偶, 数组相应位置标记”已签到”

如果ID没有对应值, 说明是单身狗, 数组相应位置标记”落单”(另一个宏定义)遍历数组, 不管值为”已签到”和”落单”的. 如果一个ID对应有非负值(即合法ID值,说明ta是有配偶的), 进一步如果这个值对应值是”已签到”,说明ID没有来, 而ta的配偶来了(对照上面操作不难理解). ID这个人算是”落单”,标记上

最后再遍历一次, 值为”落单”的输出即可

#include <stdio.h>
#include <stdlib.h>
#include <string.h> #define DOG -2
#define SINGLE -3 int Couple[100000]; int main(void)
{
int count = 0, n, IDL, IDR;
memset(Couple, -1, sizeof(Couple)); scanf("%d", &n);
for (int i = 0; i < n; i++)
{ //形成情侣映射
scanf("%d %d", &IDL, &IDR);
Couple[IDL] = IDR;
Couple[IDR] = IDL;
} scanf("%d", &n); for (int i = 0; i < n; i++)
{ //读取参加聚会的ID
scanf("%d", &IDL);
if (Couple[IDL] >= 0)
{ //如果是撒狗粮的无论是一直还是两只先都变狗
Couple[IDL] = DOG; //暂时让ta变成单身狗
}
else
{ //余下的就真的是狗了
Couple[IDL] = SINGLE;
count++;
}
} for (size_t i = 0; i < 100000; i++)
{ //这一部分用于实现给撒狗粮没撒成的在这次聚会中变成真狗
if (Couple[i] >= 0 && DOG == Couple[Couple[i]])
{ //如果当前ID能够追寻到另一个ID就代表被追寻到的肯定是没撒成狗粮的
Couple[Couple[i]] = SINGLE;
count++;
}
} printf("%d\n", count);
for (size_t i = 0; i < 100000; i++)
{ //只要是SINGLE就是是单身,管ta来干什么的,兄弟姐妹们,抢啊
if (SINGLE == Couple[i])
{
printf("%05d%s", i, --count ? " " : "");
}
} return 0;
}

P1065 单身狗的更多相关文章

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

    最近有学生在使用PHPWAMP的时候,问我霸体模式的作用. 学生问:老师,PHPWAMP里面的霸体模式是什么意思,有什么用? 回答:额...就是以前我发布测试版的时候,模式切换里面的单身狗模式. 学生 ...

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

    1065. 单身狗(25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue "单身狗"是中文对 ...

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

    因为现在只学习了基本语法,所以在综合练习之前,先补充关于方法概念. 方法的作用:把一系列的代码放在一起,然后再取个别名.之后通过这个别名的调用,就相当于执行了这一系列的代码. 方法的语法:([]中的内 ...

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

    今天,我们要玩个大的!!! 我们把之前使用数组做的这个单身狗系统改版成数据库版本,并且使用面向对象里面的一些简单思想.如果有不知道这个系统的看官,请跳转到目录页,然后再选择单身狗系统(数组版)先围观五 ...

  5. PAT Basic 1065 单身狗

    单身狗(25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue "单身狗"是中文对于单身人士的 ...

  6. PAT 乙级 1065 单身狗 (25 分)

    1065 单身狗 (25 分) “单身狗”是中文对于单身人士的一种爱称.本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱. 输入格式: 输入第一行给出一个正整数 N(≤ 50 000),是 ...

  7. 【PAT】B1065 单身狗(25 分)

    #include<stdio.h> #include<algorithm> #include<math.h> using namespace std; int ca ...

  8. PAT 1065 单身狗(25)(STL-map+思路+测试点分析)

    1065 单身狗(25 分) "单身狗"是中文对于单身人士的一种爱称.本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱. 输入格式: 输入第一行给出一个正整数 N(≤  ...

  9. PAT——1065. 单身狗

    “单身狗”是中文对于单身人士的一种爱称.本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱. 输入格式: 输入第一行给出一个正整数N(<=50000),是已知夫妻/伴侣的对数:随后N行 ...

随机推荐

  1. JAVA笔记---方法

    JAVA的方法 方法的基础 1. return 语句的一些高级应用 public class Method{ public static void main(Sting[] args){ System ...

  2. solve License Key is legacy format when use ACTIVATION_CODE activate jetbrains-product 2019.3.1

    1.the java-agent and ACTIVATION_CODE can get from this site:https://zhile.io/2018/08/25/jetbrains-li ...

  3. Hibernate框架报错:org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.mikey.hibernate.domain.Person.pid

    报错信息 org nate.PropertyAccessException:IllegalArgumentException在调用com.mikey.Hibernate.domain.Person.p ...

  4. nginx 性能优化的概述及在CPU资源方面的处理

    nginx的性能优化的概述 软件层面的提升硬件的使用率 增大CPU的利用率 增大内存的利用率 增大磁盘IO利用率 增大网络带宽利用率 提升硬件规格 网卡:万兆网卡.例如10G.25G.40G等 磁盘: ...

  5. git 删除分支和回退到以前某个提交版本

    1.git 创建和删除分支: 创建:git branch 分支名字 本地删除:git branch -D 分支名字 远程删除:git push origin :分支名字 2.git 回退到以前提交的版 ...

  6. Servlet 学习(三)

    HTTP 请求的构成 1.HTTP 请求行: 请求方式,比如 GET .POST 等 本次请求的URI ,比如 /hello 协议和版本号 2. HTTP 请求报头: (头部/首部/请求头) 请求头和 ...

  7. STM32的程序升级

    IAP基础参考http://www.eeworld.com.cn/mcu/2018/ic-news112042038.html https://blog.csdn.net/tq384998430/ar ...

  8. Codeforces Round #580 (Div. 2)D(思维,Floyd暴力最小环)

    #define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;const int maxn=300;cons ...

  9. php实现简单链式操作mysql数据库类

    <?php $dbConfig = require_once(dirname(__FILE__).'/config.php'); class Db{     public $conn;      ...

  10. Spring Boot+Jpa(MYSQL)做一个登陆注册系统(前后端数据库一站式编程)

    Spring Boot最好的学习方法就是实战训练,今天我们用很短的时间启动我们第一个Spring Boot应用,并且连接我们的MySQL数据库. 我将假设读者为几乎零基础,在实战讲解中会渗透Sprin ...