CodeForces 591B Rebranding
水题
#include<cstdio> #include<cstring> #include<cmath> #include<vector> #include<algorithm> using namespace std; vector<int> g[30]; int n,m; char s[200000+10],ans[200000+10]; int k[30]; char t1[5],t2[5]; void init() { for(int i=0; i<30; i++) g[i].clear(); } int main() { while(~scanf("%d%d",&n,&m)) { scanf("%s",s); init(); int len=strlen(s); for(int i=0; i<len; i++) g[s[i]-'a'].push_back(i); for(int i=0; i<26; i++) k[i]=i; for(int i=0; i<m; i++) { scanf("%s%s",t1,t2); swap(k[t1[0]-'a'],k[t2[0]-'a']); } for(int i=0; i<26; i++) for(int j=0; j<g[k[i]].size(); j++) ans[g[k[i]][j]]='a'+i; ans[n]='\0'; printf("%s\n",ans); } return 0; }