问题 J: 寻找复读机【模拟】
生活随笔
收集整理的這篇文章主要介紹了
问题 J: 寻找复读机【模拟】
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
問題 J: 尋找復(fù)讀機
時間限制: 1 Sec??內(nèi)存限制: 128 MB
提交: 131??解決: 50
[提交] [狀態(tài)] [討論版] [命題人:admin]
?
題目描述
某個QQ群里一共有n個人,他們的編號是1..n,其中有一些人本質(zhì)上是復(fù)讀機。
小A發(fā)現(xiàn),如果一個人的本質(zhì)是復(fù)讀機,那么他每次發(fā)的消息一定跟群里的上一條消息一樣,特別地第一個發(fā)消息的人一定不是復(fù)讀機。
現(xiàn)在小A搞到了一份聊天記錄,他想請你找出所有可能是復(fù)讀機的群友
?
輸入
第一行兩個正整數(shù)n,m,表示群里的人數(shù)和聊天記錄的總條數(shù)
接下來m行按時間順序給出聊天記錄,每行有一個正整數(shù)x和一個小寫字母字符串S,表示群友x發(fā)了消息S
1≤n≤103
1≤m≤103
1≤∣S∣≤100
?
輸出
輸出一行,將所有可能是復(fù)讀機的群友的編號按照從小到大排序后輸出,每兩個編號之間隔一個空格
?
樣例輸入
3 5 1 gugugu 2 gugugu 1 gugu 3 tingzhifudu 2 tingzhifudu?
樣例輸出
2方法:模擬一下過程即可
AC代碼
#include <cstdio> #include <iostream> #include <algorithm> #include <cmath> #include <cstdlib> #include <cstring> #include <map> #include <stack> #include <queue> #include <vector> #include <bitset> #include <set> #include <utility> using namespace std; typedef long long ll; #define inf 0x3f3f3f3f #define rep(i,l,r) for(int i=l;i<=r;i++) #define lep(i,l,r) for(int i=l;i>=r;i--) #define ms(arr) memset(arr,0,sizeof(arr)) //priority_queue<int,vector<int> ,greater<int> >q; const int maxn = (int)1e5 + 5; const ll mod = 1e9+7; int main() {//freopen("in.txt", "r", stdin);//freopen("out.txt", "w", stdout);ios::sync_with_stdio(0),cin.tie(0);int n,m;cin>>n>>m;bool vis[1200];memset(vis,false,sizeof(vis));string t1,t2;int a;cin>>a>>t1;vis[a]=true;for(int i=2;i<=m;i++){cin>>a>>t2;if(t2.compare(t1)!=0)vis[a]=true;t1=t2;}for(int i=1;i<=n;i++){if(!vis[i])cout<<i<<" ";}cout<<endl;return 0; }?
總結(jié)
以上是生活随笔為你收集整理的问题 J: 寻找复读机【模拟】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML meta使用
- 下一篇: Ubuntu 18.04安装NVIDIA