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 手机短信问题的主要内容,如果未能解决你的问题,请参考以下文章

php CF7手机现场验证

“无法为 SSL/TLS 建立安全通道”在智能手机上的 .NET CF 应用程序中

codeforces比赛题解#868 CF Round #438 (Div.1+Div.2)

安卓手机如何更换SD卡

Appium连接真机设置及连接操作

玩过的游戏总结