pat甲级 1121. Damn Single (25)
来源:互联网 发布:户口本查询软件 编辑:程序博客网 时间:2024/04/27 22:44
"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 (<=50000), 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 (<=10000) 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:311111 2222233333 4444455555 66666755555 44444 10000 88888 22222 11111 23333
Sample Output:510000 23333 44444 55555 88888题目大意给出n对夫妻,再给出m个参加party的人,问这m个人中单身的人有几个并且按从小到大的顺序输出这几个人。解题思路用一个数组mp[]来存储n对夫妻的信息,用vis[]来存储参加party的人。对每个参加party的人:(1)没有配偶;(2)有配偶但是配偶没在party中;(3)有配偶并且配偶也在party中。显然对于(1)(2)是应该输出的。即mp==-1和!vis[]的人。代码#include <cstdio>#include <vector>#include <map>#include <set>#include <cstdlib>#include <climits>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define ll long longconst int MAXN = 100000 + 5;const int MAXM = 10000 + 5;const int INF = 0x7f7f7f7f;template <class XSD> inline XSD f_min(XSD a, XSD b) { if (a > b) a = b; return a; }template <class XSD> inline XSD f_max(XSD a, XSD b) { if (a < b) a = b; return a; }int n, m;int mp[MAXN], digit[MAXM];int vis[MAXN];void Getdata(int n){ int x, y; memset(vis, 0, sizeof vis); memset(mp, -1, sizeof mp); for(int i=0; i<n; i++){ scanf("%d%d", &x, &y); mp[x] = y; mp[y] = x; } scanf("%d", &m); for(int i=0; i<m; i++) { scanf("%d", &digit[i]); vis[digit[i]] = 1; }}void Solve(){ int ans[MAXM], cnt=0; for(int i=0; i<m; i++){ int x=digit[i], y=mp[x]; if(y==-1) ans[cnt++]=x;//没有伴侣 else{ if(!vis[y]) ans[cnt++]=x;//有伴侣,但是没来 } } printf("%d\n", cnt); sort(ans, ans+cnt); for(int i=0; i<cnt; i++) printf("%05d%c", ans[i], i==(cnt-1)?'\n':' ');}int main(){ while(~scanf("%d", &n)){ Getdata(n); Solve(); } return 0;}
- PAT - 甲级 - 1121. Damn Single (25)
- pat甲级 1121. Damn Single (25)
- PAT甲级练习1121. Damn Single (25)
- PAT甲级 1121. Damn Single (25)
- PAT 甲级 1121. Damn Single (25)
- 1121. Damn Single (25)-PAT甲级真题
- PAT--1121. Damn Single (25)
- 1065. 单身狗(25) PAT乙级&&1121. Damn Single (25) PAT 甲级
- 【PAT】1121. Damn Single
- PAT (Advanced Level) 1121. Damn Single (25)
- 【PAT】【Advanced Level】1121. Damn Single (25)
- PAT A1121 damn single (25)
- PAT A1121. Damn Single (25)
- 1121. Damn Single (25)
- 1121. Damn Single (25)
- 1121. Damn Single (25)
- 1121. Damn Single (25)
- 1121. Damn Single (25)
- 关于Objdump指令的解释
- Retrofit2.0起步篇
- Java对象的序列化与反序列化
- 用C语言画个心
- 数据结构实验之串一:KMP简单应用
- pat甲级 1121. Damn Single (25)
- 数据结构实验之串二:字符串匹配
- TCP/IP摘要
- MySQL最大连接数设置
- 铺地毯
- 华硕笔记本bios设置禁用uefi后使用u盘装系统方法
- sizeof和strlen的区别
- CVE-2016-1503 漏洞分析
- Javascript addEventListener和attachEvent的区别