天天看点

你猜这是什么题

​​传送门​​​ 题目描述

一段来自神奇天书的文字由n个小写英文字母组成。经过多年传承,这里面藏有许多的暗语,只有解出来,你才能看到真正的文字。看到它使你快乐,不可能的!

已知,共有m名大师参与修订。到第ii名大师之手后,他立即同其他人一样做出了如下修改:他采用了天书的最新版本,并用xx替代所有的y,y替代x,这样就产生了新版本。这些字母中的某些字母可能不会出现在字符串中。 x也可能与y一致。最后一位大师工作替换后的天书即为最新版本。

你迫不及待的想要看懂天书,以助你得到质的飞跃,但是你只有最初版本的天书以及替换过程,于是你开始从最初版本开始替换,试图得出最终版本。

输入格式

输入的第一行包含两个整数n和m

分别是名字的长度和暗语修订次数。

第二行由n个小写英文字母组成,代表原始版本。

输出格式

#include<bits/stdc++.h>
using namespace std;
#define ll long long
map<char,char>vis;

int main()
{
  int n,m;
  cin>>n>>m;
  string a;
  cin>>a;
  for(char i = 'a'; i <= 'z'; i++) vis[i] = i;
  while(m--)
  {
    char x,y;
    cin>>x>>y;
    if(x == y) continue;
    for(char i = 'a'; i <= 'z'; i++)
    {
      if(x == vis[i])
      {
        vis[i] = y;
      }
      else if(y == vis[i])
      {
        vis[i] = x;
      }
    }
  }
  int len = a.size();
  for(int i = 0; i < len; i++)
  {
    cout<<vis[a[i]];
  }
}