cf 手机短信问题
Posted qingyuyyyyy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cf 手机短信问题相关的知识,希望对你有一定的参考价值。
题目:你有一部手机,最多显示k个人发的信息,现在收到n条信息,有可能人是相同的人发的。最新的要顶置,当屏幕上显示的人数已经有k个时,
如果此时又新的人发信息,则把显示屏末端的会消失,最新的顶置。
输入:第一行:n,k n表示短信的条数,k表示屏幕最多显示的人的个数
第二行:有n个数字,分别表示发短信的人,可以相同。
输出:求最终自顶向下显示在屏幕上的朋友
代码:
#include<bits/stdc++.h>
using namespace std;
set<int>s;
deque<int>m;
int main()
int n,k;
cin>>n;
cin>>k;
for(int i=0; i<n; i++)
int j;
cin>>j;
if(!s.count(j))
m.push_front(j);
s.insert(j);
if(m.size()>k)
s.erase(m.back());
m.pop_back();
for(int i=0;i<k;i++)
cout<<m[i]<<" ";
输入n k
for(1~n) 循环读入n个朋友
对于每个朋友x
首先用set的count函数set.count(x)判断之前有没有出现过
如果出现过,直接continue跳过,不做任何处理
如果没有出现过,把这个朋友x放入队头deque.push_front(x)
把这个数放入set,set.insert(x) 表示朋友x出现过,然后,
判断deque的size是否大于k,deque.size()
如果大于k,在set中删除deque的队尾那个数,set.erase(deque.back())
然后把deque队尾删除掉,deque.pop_back();
最后输出deque
以上是关于cf 手机短信问题的主要内容,如果未能解决你的问题,请参考以下文章
“无法为 SSL/TLS 建立安全通道”在智能手机上的 .NET CF 应用程序中