欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

#205-[STL set] 灰色头像

发布时间:2024/1/1 编程问答 43 豆豆
生活随笔 收集整理的这篇文章主要介绍了 #205-[STL set] 灰色头像 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

Description

引子:

这一些不要管,读了没有用的

背景:

WJMZBMR 喜欢上 QQ。。但是很多人的头像已经变成灰色了。这让他压力很大。而且 WJMZBMR 的好友太多了,大量的灰色头像让他无法准确的找到他想找的好友。。

今天 WJMZBMR 决定清理一下他的 QQ,找出那些不会在跳动的头像并且把它们踢掉。为此他翻出了最近一个月的聊天记录。

如果一个头像在在最近一个月中与 WJMZBMR 聊天次数小于等于 2 次, WJMZBMR 就会认为这是不会再跳动的灰色头像然后把他删掉。

那么请你为 WJMZBMR 写个程序完成这件事情,并输出剩下的头像。

 

定义:

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

 

严格的数学定义:

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

Input

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

Output

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

6 Gx tracyhenry seventhplus Gx seventhplus Gx
  • Sample Input

1 Gx
  • Sample Output

HINT

20%的数据 N<=1000
100%的数据 N<=100000

Uploaded By MCHacker

 

直接STLset爆枚......

注意最后的排序顺序.

#include <iostream> #include <cstdio> #include <string> #include <queue> #include <set> #include <algorithm>using namespace std; const int MAXN = 100010;multiset<string> st; priority_queue<string> q; string s[MAXN], r[MAXN];bool comp(string a, string b) { // 最后的排序int aa = st.count(a), bb = st.count(b);if (aa!=bb) return aa>bb;return a<b; } int main() {int n, id = 0; scanf("%d", &n);for (int i=1; i<=n; ++i) {string str; cin >> str;if (!st.count(str)) s[++id] = str;st.insert(str);}int res = 0;for (int i=1; i<=id; ++i) { // 枚举每个字符串if (st.count(s[i])>2) { // 大于等于3的,可以有r[++res] = s[i]; // 存入结果数组}}sort(r+1, r+res+1, comp); // 排序printf("%d", res);for (int i=1; i<=res; ++i) {printf("\n"); cout << r[i];}return 0; }

 

总结

以上是生活随笔为你收集整理的#205-[STL set] 灰色头像的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。