L1-020. 帅到没朋友
当芸芸众生忙着在朋友圈中发照片的时候,总有一些人因为太帅而没有朋友。本题就要求你找出那些帅到没有朋友的人。
输入格式:
输入第一行给出一个正整数N(<=100),是已知朋友圈的个数;随后N行,每行首先给出一个正整数K(<=1000),为朋友圈中的人数,然后列出一个朋友圈内的所有人——为方便起见,每人对应一个ID号,为5位数字(从00000到99999),ID间以空格分隔;之后给出一个正整数M(<=10000),为待查询的人数;随后一行中列出M个待查询的ID,以空格分隔。
注意:没有朋友的人可以是根本没安装“朋友圈”,也可以是只有自己一个人在朋友圈的人。虽然有个别自恋狂会自己把自己反复加进朋友圈,但题目保证所有K超过1的朋友圈里都至少有2个不同的人。
输出格式:
按输入的顺序输出那些帅到没朋友的人。ID间用1个空格分隔,行的首尾不得有多余空格。如果没有人太帅,则输出“No one is handsome”。
注意:同一个人可以被查询多次,但只输出一次。
输入样例1:
3
3 11111 22222 55555
2 33333 44444
4 55555 66666 99999 77777
8
55555 44444 10000 88888 22222 11111 23333 88888
输出样例1:
10000 88888 23333
输入样例2:
3
3 11111 22222 55555
2 33333 44444
4 55555 66666 99999 77777
4
55555 44444 22222 11111
输出样例2:
No one is handsome
解题思路
开个数组直接记录某个人是否在一个大于两个人的朋友圈里出现过就可以了,然后扫一遍询问,将答案加到数组或者vector里顺便做一下标记,最后输出就行,坑点在于ID的前置0需要注意。
代码
/************************************************************
* Author:Dodd *
* Email:Dodd@Dodd2014.com *
* QQ:291106637 *
**********************此线以下禁止HACK**********************/
/*************************************************************
_(\_/)
,((((^`\
(((( (6 \
,((((( , \
,,,_ ,((((( /"._ ,`,
((((\ ,... ,(((( / `-.-'
))) ;' `"'"'""(((( (
((( / ((( \
)) | |
(( | . ' |
)) \ _ ' `t ,.')
( | y;- -,-""'"-.\ \/
) / ./ ) / `\ \
|./ ( ( / /'
|| \ //'|
|| \ _//'||
|| )) |_/ ||
\_\ |_/ ||
`'" \_\
`'"
**********************自己动手,丰衣足食**********************/
#include <cstdio>
#include <algorithm>
#include <vector>
#include <cstring>
#include <map>
#include <set>
using namespace std;
typedef long long LL;
#define rep(i,begin,end) for(int i=begin;i<end;++i)
#define fil(a,b) memset((a),(b),sizeof(a))
#define cl(a) fil(a,0)
bool check[100000] = {false};
int main() {
freopen("1.in","r",stdin);
int n, nx, id, qn, qid;
std::vector<int> v;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%d", &nx);
if (nx == 1)scanf("%*d");
else {
rep(j, 0, nx) {
scanf("%d", &id);
check[id] = true;
}
}
}
scanf("%d", &qn);
rep(i, 0, qn) {
scanf("%d", &qid);
if (!check[qid]) {
v.push_back(qid);
check[qid] = true;
}
}
int len = v.size();
rep(i, 0, len) {
printf("%05d", v[i]);
if (i != len - 1)printf(" ");
}
if (len == 0) {printf("No one is handsome");}
return 0;
}

这是一篇关于PAT编程竞赛中L1-020题目的解题文章。文章介绍了如何找出那些在朋友圈中没有朋友的人,即“帅到没朋友”的人。内容包括解题思路和代码实现,重点在于使用数组记录每个人在朋友圈的出现情况,并处理ID的前置0问题。

369

被折叠的 条评论
为什么被折叠?



