• 灰色头像


    引子

    你灰色头像不会再跳动 哪怕是一句简单的问候 心贴心的交流一页页翻阅多难过 是什么 坠落 升空 又想起你曾说的陪我到最后 暖色的梦变冰凉的枷锁 如果时光倒流我们又能抓得住什么。

    背景

    WJMZBMR喜欢上QQ。。但是很多人的头像已经变成灰色了。这让他压力很大。而且WJMZBMR的好友太多了,大量的灰色头像让他无法准确的找到他想找的好友。。 今天WJMZBMR决定清理一下他的QQ,找出那些不会在跳动的头像并且把它们踢掉。为此他翻出了最近一个月的聊天记录。 如果一个头像在在最近一个月中与WJMZBMR聊天次数小于等于2次,WJMZBMR就会认为这是不会再跳动的灰色头像然后把他删掉。 那么请你为WJMZBMR写个程序完成这件事情,并输出剩下的头像。

    定义

    头像其实就是ID,是一个长度小于等于30的,由小写或者大写英文字母组成的字符串。

    严格的数学定义

    给出一些字符串,输出其中出现次数大于等于3次的。 关于输出的顺序,出现次数多在前,如果次数一样多就按字典序,相同的ID只输出一次。

    输入格式

    第一行N表示聊天记录的长度 接下来N行每行一个字符串表示与WJMZBMR聊天的ID。

    输出格式

    第一行表示要输出的头像的个数M 之后M行每行一个字符串表示输出的ID(请按给定顺序输出,两个相同的ID只输出一次)

    样例输入

    6

    Gx

    tracyhenry

    seventhplus

    Gx

    seventhplus

    Gx

    样例输出

    1

    Gx

    数据范围

    20%的数据N<=1000

    100%的数据 N<=100000

    思路

    STL大法好(^o^)/~

    string+map水过;

    代码实现

     1 #include<map>
     2 #include<cstdio>
     3 #include<iostream>
     4 #include<algorithm>
     5 using namespace std;
     6 const int maxn=1e5+10;
     7 int n,m;
     8 string ans[maxn];
     9 map<string,int>key;
    10 string ch;
    11 bool comp(string x,string y){return key[x]>key[y]||(key[x]==key[y]&&x<y);}
    12 int main(){
    13     freopen("gray.in","r",stdin);
    14     freopen("gray.out","w",stdout);
    15     scanf("%d",&n);
    16     for(int i=1;i<=n;i++){
    17         cin>>ch;
    18         key[ch]++;
    19         if(key[ch]==3) ans[m++]=ch;
    20     }
    21     sort(ans,ans+m,comp);
    22     printf("%d
    ",m);
    23     for(int i=0;i<m;i++) cout<<ans[i]<<endl;
    24     return 0;
    25 }
  • 相关阅读:
    Android Studio 开发利器【经常使用插件】
    Eclipse改动Project的文件夹位置
    《信息检索》第8讲 毕业论文学习指导(资源及预习材料)
    Android:使用SparseArray取代HashMap优化性能
    JavaScript初探之——图片移动
    C#趣味程序---九九乘法表
    CoreData使用方法三: NSPredicate在CoreData中的使用
    Eclipse中使用正则屏蔽Logcat中的某些Tag
    给一个int型整数,如何将这个整数的奇偶位互换
    30款基本UX工具
  • 原文地址:https://www.cnblogs.com/J-william/p/7413702.html
Copyright © 2020-2023  润新知