P1065 单身狗
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 单身狗的更多相关文章
- phpwamp单身狗模式的详解与分析,单身狗模式/即霸体模式的作用讲解。
最近有学生在使用PHPWAMP的时候,问我霸体模式的作用. 学生问:老师,PHPWAMP里面的霸体模式是什么意思,有什么用? 回答:额...就是以前我发布测试版的时候,模式切换里面的单身狗模式. 学生 ...
- PAT乙级 1065. 单身狗(25) by Python
1065. 单身狗(25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue "单身狗"是中文对 ...
- 《Java从入门到放弃》JavaSE篇:综合练习——单身狗租赁系统(数组版)
因为现在只学习了基本语法,所以在综合练习之前,先补充关于方法概念. 方法的作用:把一系列的代码放在一起,然后再取个别名.之后通过这个别名的调用,就相当于执行了这一系列的代码. 方法的语法:([]中的内 ...
- 《Java从入门到放弃》JavaSE入门篇:练习——单身狗租赁系统
今天,我们要玩个大的!!! 我们把之前使用数组做的这个单身狗系统改版成数据库版本,并且使用面向对象里面的一些简单思想.如果有不知道这个系统的看官,请跳转到目录页,然后再选择单身狗系统(数组版)先围观五 ...
- PAT Basic 1065 单身狗
单身狗(25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue "单身狗"是中文对于单身人士的 ...
- PAT 乙级 1065 单身狗 (25 分)
1065 单身狗 (25 分) “单身狗”是中文对于单身人士的一种爱称.本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱. 输入格式: 输入第一行给出一个正整数 N(≤ 50 000),是 ...
- 【PAT】B1065 单身狗(25 分)
#include<stdio.h> #include<algorithm> #include<math.h> using namespace std; int ca ...
- PAT 1065 单身狗(25)(STL-map+思路+测试点分析)
1065 单身狗(25 分) "单身狗"是中文对于单身人士的一种爱称.本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱. 输入格式: 输入第一行给出一个正整数 N(≤ ...
- PAT——1065. 单身狗
“单身狗”是中文对于单身人士的一种爱称.本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱. 输入格式: 输入第一行给出一个正整数N(<=50000),是已知夫妻/伴侣的对数:随后N行 ...
随机推荐
- vue项目中vant tab改变标签颜色
找了几种方法,只有下面这个方法是生效的: <van-tabs v-model="active" sticky title-active-color="#144a9e ...
- jxl读取设置过数据有效性的xls文件报错
//在用jxl读入excel时,一直报如下错误: Warning: Cannot read drop down range Unrecognized token 43 Exception in thr ...
- 获取当前表中的最大自增id的下一个自增id值
SELECT auto_increment FROM information_schema.`TABLES` WHERE TABLE_SCHEMA='{$db_name}' AND TABLE_NAM ...
- ES5-严格模式
在es5中可以开启一种严格模式的代码形式,开启方式是:将全局或者函数的第一条语句定义为:'use strict';. 如果浏览器不支持,会将其解析为一条普通语句,没有任何的副作用. 开启全局模式后会有 ...
- c++中的运算符重载operator2(翁恺c++公开课[31-33]学习笔记)
上一篇operator1中,大概说了下重载的基本用法,接下来对c++中常见的可重载运算符归一下类,说一下它们的返回值,讨论下较为复杂的运算符重载上的坑
- 搭建私有CA并实现证书颁发
一.搭建私有CA服务器 1.安装包 # yum -y install openssl 2.生成密钥对儿 # cd /etc/pki/CA # (umask 077;openssl genrsa -ou ...
- JSTL fn:replace()函数替换 换行符
转自:http://blog.163.com/chenjie_8392/blog/static/439339842010513128139/ 近日在使用textarea时,输入了回车,为了将texta ...
- Windows下载编译Qt5 Gui
安装工具 Python 这个安装的时候没记录下来,网上查一下,大把, 就不补了. ActivePerl https://www.cnblogs.com/dilex/p/10591579.html 下载 ...
- H5中input输入框tppe为date时赋值(回显)
1.当时间为2013-09-05时正常显示 <input class="form-control" name="applytime" type=" ...
- Scrapy 下载文件和图片
我们学习了从网页中爬取信息的方法,这只是爬虫最典型的一种应用,除此之外,下载文件也是实际应用中很常见的一种需求,例如使用爬虫爬取网站中的图片.视频.WORD文档.PDF文件.压缩包等. 1.Files ...