PAT Basic 1065 单身狗
- 单身狗(25)
时间限制
300 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
“单身狗”是中文对于单身人士的一种爱称。本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱。
输入格式:
输入第一行给出一个正整数N(<=50000),是已知夫妻/伴侣的对数;随后N行,每行给出一对夫妻/伴侣——为方便起见,每人对应一个ID号,为5位数字(从00000到99999),ID间以空格分隔;之后给出一个正整数M(<=10000),为参加派对的总人数;随后一行给出这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
思路:把已婚人士记录到一个hash表中,互为对方id;查询阶段,每个query在已婚人士表中查看,没有查到则肯定单身,放到vector容器;查到了则放置到“等候区”,将其标记值设定为1;如果他/她配偶也在等候区那么她配偶的等候标记也等于1,那么两个人的等候标记都修改为2(表示双方都在场);随后遍历等候区,根据等候标记值是否等于1表示是否为单身狗,是则放入单身狗的vector容器。最后,单身狗的vector容器排序,再输出结果。
注意如果没有单身狗则不要输出多余换行。题目不说这点略坑。
#include <cstdio>
#include <iostream>
#include <cstring>
#include <string>
#include <algorithm>
#include <cstdlib>
#include <vector>
#include <cmath>
#include <set>
#include <iomanip>
#include <sstream>
#include <unordered_map>
using namespace std;
int main() {
unordered_map<string, string> mp;
int n;
cin >> n;
for (int i = 0; i < n; i++) {
string a, b;
cin >> a >> b;
mp[a] = b;
mp[b] = a;
}
int k;
cin >> k;
vector<string> v_dog;
unordered_map<string, int> wait_region;
for (int i = 0; i < k; i++) {
string q_id;
cin >> q_id;
if (mp[q_id] == "") {
v_dog.push_back(q_id);
}
else {
wait_region[q_id] = 1;
if (wait_region[mp[q_id]] == 1) {
wait_region[q_id] = 2;
wait_region[mp[q_id]] = 2;
}
}
}
unordered_map<string, int>::iterator it = wait_region.begin();
for (; it != wait_region.end(); it++) {
if (it->second == 1) {
v_dog.push_back(it->first);
}
}
cout << v_dog.size() << endl;
sort(v_dog.begin(), v_dog.end());
for (int i = 0; i < v_dog.size(); i++) {
if (i > 0) {
cout << " ";
}
cout << v_dog[i];
}
if (v_dog.size() > 0) {
cout << endl;
}
return 0;
}
/*
使用了unordered_map来做,其实用数组也OK,只不过哈希表对于字符串类型id也适用。
第一个坑:结果要排序
第二个坑:如果单身狗数量为0,则不应该输出换行。题目居然不说这一点,好坑
*/
PAT Basic 1065 单身狗的更多相关文章
- PAT Basic 1065 单身狗 (25 分)
“单身狗”是中文对于单身人士的一种爱称.本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱. 输入格式: 输入第一行给出一个正整数 N(≤ 50 000),是已知夫妻/伴侣的对数:随后 N ...
- PAT乙级 1065. 单身狗(25) by Python
1065. 单身狗(25) 时间限制 300 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue "单身狗"是中文对 ...
- PAT 乙级 1065 单身狗 (25 分)
1065 单身狗 (25 分) “单身狗”是中文对于单身人士的一种爱称.本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱. 输入格式: 输入第一行给出一个正整数 N(≤ 50 000),是 ...
- PAT(B) 1065 单身狗(Java:17分,C:25分)
题目链接:1065 单身狗 (25 point(s)) 题目描述 "单身狗"是中文对于单身人士的一种爱称.本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱. 输入格式 ...
- PAT (Basic Level) Practice (中文)1065 单身狗 (25 分) 凌宸1642
PAT (Basic Level) Practice (中文)1065 单身狗 (25 分) 凌宸1642 题目描述: "单身狗"是中文对于单身人士的一种爱称.本题请你从上万人的大 ...
- PAT 1065 单身狗(25)(STL-map+思路+测试点分析)
1065 单身狗(25 分) "单身狗"是中文对于单身人士的一种爱称.本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱. 输入格式: 输入第一行给出一个正整数 N(≤ ...
- PAT Basic 1065
1065 单身狗 “单身狗”是中文对于单身人士的一种爱称.本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱. 输入格式: 输入第一行给出一个正整数 N(≤ 50 000),是已知夫妻/伴侣 ...
- PAT——1065. 单身狗
“单身狗”是中文对于单身人士的一种爱称.本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱. 输入格式: 输入第一行给出一个正整数N(<=50000),是已知夫妻/伴侣的对数:随后N行 ...
- PAT 1065 单身狗
https://pintia.cn/problem-sets/994805260223102976/problems/994805266942377984 “单身狗”是中文对于单身人士的一种爱称.本题 ...
随机推荐
- P5238 整数校验器
题目地址:P5238 整数校验器 显然这道题不算难,细心即可AC 细节见代码中的注释 #include <bits/stdc++.h> #define ll long long using ...
- 在Linux环境下使用Apache部署ASP.NET Core
在前几篇文章中我们一起探讨了如何在Linux环境中安装ASP.NET Core运行时环境及将ASP.NET Core项目部署在Jexus中,这篇文章中我们将探讨如何将ASP.NET Core部署于Ap ...
- R-FCN论文讲解(转载链接)
总结一下一下R-FCN的思想:由于分类网络具有位置的“不敏感性”和检测网络具有“位置的敏感性”这两者之间的矛盾, 而ResNet论文中为了解决这个问题,做出了一点让步,即将RoI Pooling层不再 ...
- python实战===教你用微信每天给女朋友说晚安【转】
转自:https://www.cnblogs.com/botoo/p/8622379.html#4081184 但凡一件事,稍微有些重复.我就考虑怎么样用程序来实现它. 这里给各位程序员朋友分享如何每 ...
- http://nancyfx.org + ASPNETCORE
商务产品servicestack: https://servicestack.net/ http://nancyfx.org + ASPNETCORE http://nancyfx.org ...
- requests库入门10-超时,错误与异常
在实际发布到生产上的接口测试代码,都会加上超时的设置,当服务器超过一定时间没有响应,会报出超时异常.因为requests会自动等待响应.如果不加上超时的设置,可能脚本会一直卡在那里.. 超时设置在请求 ...
- linux学习之硬盘的存储原理和内部架构
原文地址:https://blog.csdn.net/tanggao1314/article/details/52074735 首先,让我们看一下硬盘的发展史: 1956年9月13日,IBM的IBM ...
- HTML中添加音乐video embed audio
做H5页面时需要添加背景音乐,方法如下 方式一:<video controls="" autoplay="" name="media" ...
- 洛谷P4705 玩游戏 [生成函数,NTT]
传送门 这是两个月之前写的题,但没写博客.现在回过头来看一下发现又不会了-- 还是要写博客加深记忆. 思路 显然期望可以算出总数再乘上\((nm)^{-1}\). 那么有 \[ \begin{alig ...
- nginx官方模块之http_random_index_module
作用 目录中选择一个随机主页 语法