【Codeforces Round #327 (Div. 2) B】 Rebranding 字符变换 同类型打标记
来源:互联网 发布:php导入excel 编辑:程序博客网 时间:2024/06/03 11:07
#include<stdio.h>#include<string.h>#include<ctype.h>#include<math.h>#include<iostream>#include<string>#include<set>#include<map>#include<vector>#include<queue>#include<bitset>#include<algorithm>#include<time.h>using namespace std;void fre(){freopen("c://test//input.in","r",stdin);freopen("c://test//output.out","w",stdout);}#define MS(x,y) memset(x,y,sizeof(x))#define MC(x,y) memcpy(x,y,sizeof(x))#define MP(x,y) make_pair(x,y)#define ls o<<1#define rs o<<1|1typedef long long LL;typedef unsigned long long UL;typedef unsigned int UI;template <class T> inline void gmax(T &a,T b){if(b>a)a=b;}template <class T> inline void gmin(T &a,T b){if(b<a)a=b;}const int N=2e5+10,M=0,Z=1e9+7,ms63=1061109567;int n,m;char s[N];char a[128],x,y;//a[i]表示一开始是i的字符最后变成了什么int main(){while(~scanf("%d%d",&n,&m)){for(int i='a';i<='z';i++)a[i]=i;scanf("%s",s);for(int i=1;i<=m;i++){scanf(" %c %c",&x,&y);for(int i='a';i<='z';i++){if(a[i]==x)a[i]=y;else if(a[i]==y)a[i]=x;}}for(int i=0;s[i];i++)s[i]=a[s[i]];puts(s);}return 0;}/*【题意】给你一个长度为n(2e5)的串,串中只包含小写字母。我们先后进行了m(2e5)次替代,对于每次替代规则(x,y),把当前为x的字符变成字符y,并把当前为y的字符变成字符x。问你经过这m次替代之后,串变成了什么模样并输出。【类型】暴力【分析】显然不能模拟。首先观察到,一开始是某个char类型的,最后都会变成相同的char类型。于是我们需要用a[x]表示初始字符是x,最终变成的字符。这样,对于每个替代规则(x,y),我们扫描一下a['a'~'z'],把a[i]==x的变为a[i]=y,把a[i]==y的变为a[i]=x。就可以AC啦。字符集果然是简化复杂度的一大重要突破口。【时间复杂度&&优化】O(26m)【数据】Input6 1policep mOutputmoliceInput11 6abacabadabaa bb ca de gf ab bOutputcdcbcdcfcdc*/
1 0
- 【Codeforces Round #327 (Div. 2) B】 Rebranding 字符变换 同类型打标记
- Codeforces Round #327 (Div. 2)B. Rebranding
- Codeforces Round #327 (Div. 2) B. Rebranding
- Codeforces Round #327 (Div. 2) B. Rebranding
- Codeforces Round #327 (Div. 2)B. Rebranding
- Codeforces Round #327 (Div. 2)B. Rebranding
- Codeforces 591 B Rebranding【Codeforces Round #327 (Div. 2)】
- Codeforces Round #327 (Div. 2) (B. Rebranding 字符串的操作)
- Codeforces Round #327 (Div. 2)——B. Rebranding
- Codeforces Round #327 (Div. 2) B. Rebranding (字符串)
- Codeforces Round #327 (Div. 2) (B. Rebranding 字符串的操作)
- codeforces #327 (Div. 2) ->B. Rebranding(字符串 模拟)
- cf #327 Div.2 Problem B Rebranding
- Codeforces Round #364 div.2 B 【数组标记】
- Codeforces Round #383 (Div. 2) B(打表)
- Codeforces #327-B. Rebranding-hash
- 【Codeforces Round 370 (Div 2) D】【前缀和打标记】Memory and Scores 双人随机数值增减K A比B多的方案数
- Codeforces Round #383 (Div. 2) && Codeforces 742 B (标记技巧)
- 算法面试题-leetcode学习之旅(二)
- HTML_CSS学习小结
- Navicat Premium 连接 Oracle 数据库
- grep 精萃
- NSLog的格式
- 【Codeforces Round #327 (Div. 2) B】 Rebranding 字符变换 同类型打标记
- 浅谈Oracle 中 varchar2(N) 与 varchar2(N char) 的区别
- unity中对于scrollview下拉加载的方法
- Lua视频教程连载(第一课)
- iOS drawRect绘画
- iFunBox显示机器未越狱
- Android传递数据
- [Android界面] 关于获取listview中每一个spinner的值的问题
- APNS的推送机制