A - Decoding Baby Boos---(2015 NEUQ_ACM summer training #1)
2015-08-05 14:49
260 查看
题目链接:http://7xjob4.com1.z0.glb.clouddn.com/bf4e186f3e033bf65549cd29766985f6
分析:题意是给一个字符串,然后给出一些修改操作,每次有两个字符A和B,意思用A代替B,以此来更新字符串。如果每一次根据操作更新,绝对超时。我们可以先用26个字母来用操作进行更新,得到每个字母在所有操作完成后,最终得到的字符是什么,最后一次性遍历字符串更新就OK了。
PS:当写成for(int i=0;i<strlen(c);i++)时,我老是超时,怎么看都没看出来哪里会超时,后来问了学长才知道,把strlen写进for循环时,每次都会计算一次,所以会TLE。
CODE:
分析:题意是给一个字符串,然后给出一些修改操作,每次有两个字符A和B,意思用A代替B,以此来更新字符串。如果每一次根据操作更新,绝对超时。我们可以先用26个字母来用操作进行更新,得到每个字母在所有操作完成后,最终得到的字符是什么,最后一次性遍历字符串更新就OK了。
PS:当写成for(int i=0;i<strlen(c);i++)时,我老是超时,怎么看都没看出来哪里会超时,后来问了学长才知道,把strlen写进for循环时,每次都会计算一次,所以会TLE。
CODE:
#include <string.h> #include <iostream> using namespace std; int t,n; char tmp[26],fir,sec; string s; int main() { cin>>t; while(t--){ for(int i=0;i<26;i++) tmp[i]='A'+i; cin>>s; cin>>n; while(n--){ cin>>fir>>sec; for(int i=0;i<26;i++){ if(tmp[i]==sec){ tmp[i]=fir; } } } for(int i=0;i<s.size();i++){ if(s[i]!='_') cout<<tmp[s[i]-'A']; else cout<<s[i]; } cout<<endl; } return 0;
相关文章推荐
- C - We Love MOE Girls---(2015 summer training #9)
- hdu 1789 Doing Homework again
- (FFOS Gecko & Gaia) OTA - 再进入Gecko层
- 2015 Multi-University Training Contest 5 hdu 5349 MZL's simple problem
- (FFOS Gecko & Gaia) OTA - 重回Gaia层
- Waited long enough for: ServiceRecord 问题解决
- Debug Assertion Failed! Expression: _pFirstBlock == pHead
- postfix与sendmail冲突
- EZ-USB固件框架的追踪研读之main函数3
- saltstack的深入-再次理解state的基本用法
- EZ-USB固件框架的追踪研读之main函数2
- AIX系统修改系统时间
- (FFOS Gecko & Gaia) OTA - 处理check结果
- GCD Again HDU杭电1787
- NoClassDefFoundError: org/openxmlformats/schemas/drawingml/x2006/main/ThemeDocument
- 编译gaia
- map containsKey与get方法区别经典总结
- RGB-D 图像 (Semantic Pose using Deep Networks Trained on Synthetic RGB-D)
- The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 51716619E084DAB9
- (FFOS Gecko & Gaia) OTA - Do real check