codeforces 591B - Rebranding(模拟)
2015-10-26 11:03
363 查看
题目链接: http://codeforces.com/problemset/problem/591/B
题目大意就是给你一个字符串,给你n行,每行两个字母,表示字符串里这两个字母交换,问你经过n次变换之后的结果是多少。
数据是2*100000,直接暴力的话肯定超时,我的想法是 给你的两个字母 a b 我就默认 a是b,b是a。
AC代码:
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char s[200035],s1[5],s2[5];
int a[30];
int main()
{
int n,m,i,j,num1,num2;
scanf("%d%d",&n,&m);
{
scanf("%s",s+1);
for(i=1;i<=26;i++)
a[i]=i;
for(i=1;i<=m;i++){
scanf("%s%s",s1,s2);
num1=s1[0]-'a'+1;
num2=s2[0]-'a'+1;
for(j=1;j<=26;j++){
if(a[j]==num1){
a[j]=num2;
}
else if(a[j]==num2){
a[j]=num1;
}
}
}
for(i=1;i<=n;i++){
num1=s[i]-'a'+1;
printf("%c",'a'+a[num1]-1);
}
printf("\n");
}
}
题目大意就是给你一个字符串,给你n行,每行两个字母,表示字符串里这两个字母交换,问你经过n次变换之后的结果是多少。
数据是2*100000,直接暴力的话肯定超时,我的想法是 给你的两个字母 a b 我就默认 a是b,b是a。
AC代码:
#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
char s[200035],s1[5],s2[5];
int a[30];
int main()
{
int n,m,i,j,num1,num2;
scanf("%d%d",&n,&m);
{
scanf("%s",s+1);
for(i=1;i<=26;i++)
a[i]=i;
for(i=1;i<=m;i++){
scanf("%s%s",s1,s2);
num1=s1[0]-'a'+1;
num2=s2[0]-'a'+1;
for(j=1;j<=26;j++){
if(a[j]==num1){
a[j]=num2;
}
else if(a[j]==num2){
a[j]=num1;
}
}
}
for(i=1;i<=n;i++){
num1=s[i]-'a'+1;
printf("%c",'a'+a[num1]-1);
}
printf("\n");
}
}
相关文章推荐
- Codeforces Round #197 (Div. 2)
- Codeforces Round #198 (Div. 1)
- Codeforces 405E Codeforces Round #238 (Div. 2)E
- Codeforces 407C Codeforces Round #239 (Div. 1)C
- CodeForces 449A - Jzzhu and Chocolate
- CodeForces 449 B. Jzzhu and Cities
- Codeforces Round #265 (Div. 2)
- Codeforces #310 div2 C. Case of Matryoshkas
- 状态压缩DP codeforces 244 Problem C. The Brand New Function 和 codeforces 165 E. Compatible Numbers
- codeforces 16 Problem E fish
- Codeforces round #247 for Div. 2
- Codeforces Round #246 (Div. 2)
- Codeforces #264(div 2)D.Gargari and Permutations
- Codeforces Round #236 (Div. 2)------A,B
- codeforces 257 div2 B
- Codeforces Gym100571A Cursed Query
- Codeforces Gym100342E Minima
- Codeforces Gym100342J Triatrip
- Codeforces Gym100286B Blind Walk (dfs)
- Codeforces Gym100342J Triatrip