立志用更少的代码做更高效的表达


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

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


思考

本题难点在于如何匹配

定义数组a匹配夫妻间的编号, 定义数组b存放需查询的编号

对每个数组b中的编号,去数组a中查找,如果不存在伴侣,则一定为落单客人。

如果存在,则判断b中是否有该编号的伴侣, 如果没有,则为落单客人。


代码

#include<bits/stdc++.h>
#define Max 100010
using namespace std;
int a[Max], b[Max];
int main() {memset(a, -1, sizeof(a)); int n; cin >> n; while(n--) {int x1, x2; cin >> x1 >> x2;a[x1] = x2; a[x2] = x1;}vector<int>v;cin >> n; while(n--) {int x; cin >> x;b[x] = 1; }for(int i = 0; i < Max; i++) if(b[i] == 1) if(a[i] == -1 || b[a[i]] == 0) v.push_back(i);cout << v.size() << '\n';sort(v.begin(), v.end());for(int i = 0; i < v.size(); i++) {if(i != 0) cout << ' ';printf("%05d", v[i]);}return 0;
}


每日一句

每一个不曾起舞的日子,都是对生命的辜负。

【高效解法】1065 单身狗 (25分)_27行代码AC相关推荐

  1. 【题意+分析】1071 Speech Patterns (25 分)_27行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 People often have a preference among synonyms of the same word. F ...

  2. 1036 Boys vs Girls (25 分)_27行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 This time you are asked to tell the difference between the lowest ...

  3. 1017 Queueing at Bank (25 分)_27行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Suppose a bank has K windows open for service. There is a yellow ...

  4. 【PAT乙】1065 单身狗 (25分)

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

  5. 【简洁代码】1028 List Sorting (25 分)_26行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Excel can sort records according to any column. Now you are suppo ...

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

    题目地址 #include<cstdio> #include<iostream> #include<string> #include<vector> # ...

  7. 【两种解法】1004 Counting Leaves (30 分)_27行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 A family hierarchy is usually presented by a pedigree tree. Your ...

  8. 【简便解法】1090 危险品装箱 (25分)_33行代码AC

    立志用最少的代码做最高效的表达 PAT乙级最优题解-->传送门 集装箱运输货物时,我们必须特别小心,不能把不相容的货物装在一只箱子里.比如氧化剂绝对不能跟易燃液体同箱,否则很容易造成爆炸. 本题 ...

  9. 【最简解法】1048 Find Coins (25 分)_18行代码AC

    立志用最少的代码做最高效的表达 PAT甲级最优题解-->传送门 Eva loves to collect coins from all over the universe, including ...

最新文章

  1. golang并发编程goroutine+channel(一)
  2. 【风险管理】金融业务风控相关框架
  3. 网页设计精粹:网页中那些迷人的按钮设计
  4. 必看2021年80后夫妻同时过信息系统项目管理师
  5. 【Python相关】jupyter平台最强插件没有之一
  6. 【JAVASCRIPT】处理剪切板
  7. SAP UI5 requireBusyDialog
  8. 使用Bean验证扩展PrimeFaces CSV
  9. 解决 error: Your local changes to the following files would be overwritten by merge:XXXX
  10. 算法的时间复杂度(python版容易理解)+常用的时间复杂度、python代码--数据结构
  11. 使程序在Windows任务管理器隐藏
  12. API函数之GetUserName
  13. vue点击添加一行输入框_vue 点击按钮增加一行的方法
  14. C语言是一个什么样的语言
  15. 用python的django完成一个登录小案例
  16. Python 阶段性总结《抽奖系统》(文末附代码地址)
  17. CTR --- NFM论文阅读笔记,及tf2复现
  18. Python 拼接多张尺寸大小不一样的图片制作长图
  19. 爬取沪江网考研词汇并按要求存为txt
  20. dialog弹框通过自定义指令实现可拖拽位移功能

热门文章

  1. Trie(字典树) : 如何实现搜索引擎的关键词提示功能?
  2. Error:java: 无效的标记 -version 编译错误的解决办法
  3. Java8 日期/时间(Date Time)API指南
  4. 深入理解数据库核心技术
  5. 十一资讯 | 字节跳动进军汽车云;Twitch被黑;Facebook宕机;Netfilx收购游戏公司……...
  6. Google发布Objectron数据集
  7. JVM之XX参数详解
  8. Amazon Aurora 深度探索
  9. 贾扬清撰文详解Caffe2:从强大的新能力到入门上手教程
  10. Electron开发入门