牛客国庆集训派对Day4——J 寻找复读机 (简单模拟)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hxxjxw/article/details/82937161

题目链接:https://www.nowcoder.com/acm/contest/204/J

题目大意:
       某个 QQ 群里一共有 n 个人,他们的编号是 1..n,其中有一些人本质上是复读机。
小 A 发现,如果一个人的本质是复读机,那么他每次发的消息一定跟群里的上一条消息一样,特别地第一个发消息的人一定不是复读机。
      现在小 A 搞到了一份聊天记录,他想请你找出所有可能是复读机的群友

题解:

      简单模拟一下就好,把出现过的消息用set存起来,一旦遇到之前没有出现过的新消息就把发出该条消息的人标记为不是复读机。

     

      做题的时候脑中一直浮现那幅图,"小伙汁,想不到你也是......." hhhh

#include<bits/stdc++.h>
#include<cstring>
#define mod 1000000007
using namespace std;
typedef long long ll;
bool b[3010];
int main()
{
    int n,m;
    cin>>n>>m;
    set<string>_set;
    int x;
    string s;
    for(int i=1;i<=m;++i)
    {
        cin>>x>>s;
        if(_set.find(s)==_set.end())
        {
            b[x]=1;
            _set.insert(s);
        }
    }
    vector<int>v;
    for(int i=1;i<=n;++i)
        if(b[i]==0)
            v.push_back(i);
    for(int i=0;i<v.size();++i)
        cout<<v[i]<<(i==v.size()-1?'\n':' ');
    return 0;
}

猜你喜欢

转载自blog.csdn.net/hxxjxw/article/details/82937161