1121 Damn Single (25 分)
Posted mered1th
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1121 Damn Single (25 分)相关的知识,希望对你有一定的参考价值。
"Damn Single (单身狗)" is the Chinese nickname for someone who is being single. You are supposed to find those who are alone in a big party, so they can be taken care of.
Input Specification:
Each input file contains one test case. For each case, the first line gives a positive integer N (≤ 50,000), the total number of couples. Then N lines of the couples follow, each gives a couple of ID‘s which are 5-digit numbers (i.e. from 00000 to 99999). After the list of couples, there is a positive integer M (≤ 10,000) followed by M ID‘s of the party guests. The numbers are separated by spaces. It is guaranteed that nobody is having bigamous marriage (重婚) or dangling with more than one companion.
Output Specification:
First print in a line the total number of lonely guests. Then in the next line, print their ID‘s in increasing order. The numbers must be separated by exactly 1 space, and there must be no extra space at the end of the line.
Sample Input:
3
11111 22222
33333 44444
55555 66666
7
55555 44444 10000 88888 22222 11111 23333
Sample Output:
5
10000 23333 44444 55555 88888
题意:找出谁是“单身狗”。。。先输入各对CP,然后再输入参加party的人员,统计输入的这些人里哪些是没有CP一起来的,升序输出。
分析:水题。。我思路是用一个数组couple,初始化为-1(因为人的编号为00000-99999),作用是来存储某人的CP,如11111的CP是22222,那么couple[11111]=22222,couple[22222]=11111。最后因为要格式输出,不知道迭代器怎么格式输出。。就先把结果存到了vector中,具体见代码
1 /**
2 * Copyright(c)
3 * All rights reserved.
4 * Author : Mered1th
5 * Date : 2019-02-27-21.51.47
6 * Description : A1121
7 */
8 #include<cstdio>
9 #include<cstring>
10 #include<iostream>
11 #include<cmath>
12 #include<algorithm>
13 #include<string>
14 #include<unordered_set>
15 #include<map>
16 #include<vector>
17 #include<set>
18 using namespace std;
19 const int maxn=100010;
20 int couple[maxn]={-1};
21 int main(){
22 #ifdef ONLINE_JUDGE
23 #else
24 freopen("1.txt", "r", stdin);
25 #endif
26 int n,m,u,v,t;
27 scanf("%d",&n);
28 for(int i=0;i<n;i++){
29 scanf("%d%d",&u,&v);
30 couple[u]=v;
31 couple[v]=u;
32 }
33 scanf("%d",&m);
34 vector<int> tem;
35 for(int i=0;i<m;i++){
36 scanf("%d",&t);
37 tem.push_back(t);
38 }
39 set<int> ans;
40 for(int i=0;i<m;i++){
41 int coup=couple[tem[i]];
42 if(coup==-1) ans.insert(tem[i]);
43 else{
44 if(find(tem.begin(),tem.end(),coup)==tem.end()){
45 ans.insert(tem[i]);
46 }
47 }
48 }
49 cout<<ans.size()<<endl;
50 vector<int> res;
51 for(auto it=ans.begin();it!=ans.end();it++){
52 res.push_back(*it);
53 }
54 for(int i=0;i<res.size();i++){
55 printf("%05d",res[i]);
56 if(i!=res.size()-1) printf(" ");
57 }
58 return 0;
59 }
以上是关于1121 Damn Single (25 分)的主要内容,如果未能解决你的问题,请参考以下文章
1121 Damn Single (25 分)难度: 一般 / 知识点: 哈希表,模拟