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 }