L1-020 帅到没朋友

题目链接 https://pintia.cn/problem-sets/994805046380707840/problems/994805117167976448

排序+去重=>set

(话说题意真的要多看几遍才能看懂。。)


思路:朋友圈人数>1的人可能也帅吧,但是没有帅到要求,放入not_handsome中。再检查输入的数是否在not_handsome中,并且判断是否已经被输出过(是否在handsome中),不在则输出并且存入handsome中。

几个注意的地方:

1、如果朋友圈只有一个人不放入not_handsome中,因为这个人可能是他自己

2、ID小于五位数的前面要补零,使用%05d

3、输出空格,“这里采用bool数来判断,第一个输出前是true不输出了,其余的都输出即可”,en..刚学到的


 

放AC代码

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int n,m;
 4 bool flag=true;
 5 int main()
 6 {
 7     cin>>n;
 8     set<int>not_handsome;
 9     set<int>handsome;
10     for(int i=1;i<=n;i++)
11     {
12         int k;
13         cin>>k;
14         for(int j=1;j<=k;j++)
15         {
16             int num;
17             cin>>num;
18             if(k>1)
19                 not_handsome.insert(num);
20         }
21     }
22     cin>>m;
23     for(int i=1;i<=m;i++)
24     {
25         int num;
26         cin>>num;
27         if(not_handsome.find(num)==not_handsome.end())
28         {//判断是否为“帅人”
29             if(handsome.find(num)==handsome.end())
30             {//判断是否被输出过
31                 if(!flag)
32                 {//控制空格输出
33                     cout<<" ";
34                 }
35                 printf("%05d",num);
36                 flag=false;
37             }
38             handsome.insert(num);
39         }
40     }
41     if(handsome.size()==0)
42         cout<<"No one is handsome";
43     return 0;
44 }

 

posted @ 2022-04-20 09:10  爱吃虾滑  阅读(66)  评论(0编辑  收藏  举报