题目链接:

http://codeforces.com/problemset/problem/591/B

题意:

给你一串字符串,字符串里的字符全是a-z的小写字母,下面的m行,是字符串的交换方式, 如果输入的是 x  y,则是字母x与字母y交换,且字母y与字母x也要交换

解题思路:

n和m的范围在2*10^5内,如果直接暴力肯定会超时;

所以只能采取智慧的方法

可以先定义

char a[26]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',};

将26个小写字母全都放在数组中存好

然后每输入一行交换方式,即对字符串中相关的字母进行变换

for(j=0;j<26;j++)
{
if(a[j]==b[0]) {a[j]=b[1];continue;}//x=j;//{x=j; cout<<"x="<<x<<endl;}
if(a[j]==b[1]) a[j]=b[0]; //y=j;//{y=j;cout<<",y="<<y<<endl;}
}

全部都交换完后,现在字符串a中的字符即是交换后的值,

for(i=0;i<n;i++)
printf("%c",a[str[i]-97]);

程序代码:

#include <cstdio>
#include <iostream>
using namespace std;
const int M=+;
int main()
{
int m,n,i,j;
char a[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',};
char str[M],b[];
cin>>n>>m>>str;
while(m--)
{ int x,y;
cin>>b[]>>b[];
//cout<<b[0]<<b[1];
for(j=;j<;j++)
{
if(a[j]==b[]) {a[j]=b[];continue;}//x=j;//{x=j; cout<<"x="<<x<<endl;}
if(a[j]==b[]) a[j]=b[]; //y=j;//{y=j;cout<<",y="<<y<<endl;}
}
//a[x]=b[1];//cout<<"x="<<x<<" a[x]="<<a[x]<<endl;
//a[y]=b[0];//cout<<"y="<<y<<" a[y]="<<a[y]<<endl;
}
for(i=;i<n;i++)
printf("%c",a[str[i]-]);
printf("\n");
return ;
}

CodeForces 591B的更多相关文章

  1. codeforces 591B Rebranding (模拟)

    Rebranding Problem Description The name of one small but proud corporation consists of n lowercase E ...

  2. CodeForces 591B Rebranding

    水题 #include<cstdio> #include<cstring> #include<cmath> #include<vector> #incl ...

  3. 字符串 || CodeForces 591B Rebranding

    给一字符串,每次操作把字符串中的两种字母交换,问最后交换完的字符串是多少 arr数组记录每个字母最后被替换成了哪个字母 读入字符前面加一空格 scanf(" %c %c", &am ...

  4. Codeforces Round #327 (Div2) A~E

    CodeForces 591A 题意:在距离为L的两端A,B,相向发射魔法,a(以P1的速度)-->B,A<--b(以P2的速度).假设a-->B,途中相遇,则返回到原点A<- ...

  5. python爬虫学习(5) —— 扒一下codeforces题面

    上一次我们拿学校的URP做了个小小的demo.... 其实我们还可以把每个学生的证件照爬下来做成一个证件照校花校草评比 另外也可以写一个物理实验自动选课... 但是出于多种原因,,还是绕开这些敏感话题 ...

  6. 【Codeforces 738D】Sea Battle(贪心)

    http://codeforces.com/contest/738/problem/D Galya is playing one-dimensional Sea Battle on a 1 × n g ...

  7. 【Codeforces 738C】Road to Cinema

    http://codeforces.com/contest/738/problem/C Vasya is currently at a car rental service, and he wants ...

  8. 【Codeforces 738A】Interview with Oleg

    http://codeforces.com/contest/738/problem/A Polycarp has interviewed Oleg and has written the interv ...

  9. CodeForces - 662A Gambling Nim

    http://codeforces.com/problemset/problem/662/A 题目大意: 给定n(n <= 500000)张卡片,每张卡片的两个面都写有数字,每个面都有0.5的概 ...

随机推荐

  1. c# 操作.config中AppSettings配置节

    ConfigurationSettings.AppSettings[key].ToString(); 这种方式很眼熟吧? 不过这种方式基本过时了,虽然还能用. 微软建议采用ConfigurationM ...

  2. CSS3 box-sizing 属性

    定义和用法 box-sizing 属性允许您以特定的方式定义匹配某个区域的特定元素. 例如,假如您需要并排放置两个带边框的框,可通过将 box-sizing 设置为 "border-box& ...

  3. Android之获取本地图片并压缩方法

    这两天在做项目时,做到上传图片功能一块时,碰到两个问题,一个是如何获取所选图片的路径,一个是如何压缩图片,在查了一些资料和看了别人写的后总算折腾出来了,在此记录一下. 首先既然要选择图片,我们就先要获 ...

  4. (转载)[FFmpeg]使用ffmpeg从各种视频文件中直接截取视频图片

    你曾想过从一个视频文件中提取图片吗?在Linux下就可以,在这个教程中我将使用ffmpeg来从视频中获取图片. 什么是ffmpeg?What is ffmpeg? ffmpeg是一个非常有用的命令行程 ...

  5. javascript基础学习(五)

    javascript之函数 学习要点: 函数的介绍 函数的参数 函数的属性和方法 系统函数 一.函数的介绍 1.函数就是一段javascript代码.可以分为用户自定义函数和系统函数.   如果一个函 ...

  6. 基于nodejs的消息中心

    参考:http://t42dw.iteye.com/blog/1767013

  7. hdoj 1060

    代码: #include <stdio.h>#include <math.h> int main(){    int t;    while(scanf("%d&qu ...

  8. 《Python 二三事》——python学习必看(转载)

        面向初学者介绍Python相关的一些工具,以及可能遇到的常见问题. 原文出处 原文作者:八八年出生的男性,互联网上常用id是 jagttt .目前正从事 IT 行业的工作.业余爱好是动漫游加电 ...

  9. windows7 jdk 环境变量添加

    JAVA_HOME D:\Java;PATH %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;CLASSPATH .;%JAVA_HOME%\lib;%JAVA_HOME%\l ...

  10. Spring 整合Redis 出现 afterPropertiesSet signature: ()V) Incompatible argument to function 解决办法

    正在做SpringMVC+Redis整合的练习 使用的是 spring-data-redis 和 Jedis 配置好之后出现了以下错误: Caused by: java.lang.VerifyErro ...