• 洛谷 P1703 那个什么密码2


    题目背景

    https://www.luogu.org/problem/show?pid=1079

    题目描述

    与原题一模一样、具体不同请见输入格式

    输入输出格式

    输入格式:

     

    第一行输入密钥

    第二行输入明文

    第三行输入一个正整数M,代表操作个数.

    每个操作将[a,b]的字符全部倒转,比如abc倒转为cba.

    接下来M行,每行输入两个正整数a,b。

     

    输出格式:

     

    输出一行,输出密文。

     

    输入输出样例

    输入样例#1: 复制
    CompleteVictory
    Wherethereisawillthereisaway
    0
    输出样例#1: 复制
    Yvqgpxaimmklongnzfwpvxmniytm

    说明

    由zxy大神原创、本人在洛谷上传。

    思路:模拟。

    吐槽:出题人的语文绝对不及格!!!!!(╯‵□′)╯︵┻━┻  题目描述一点都不清楚。

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    string s,k;
    int n,miyao[5010];
    int main(){
         cin>>k>>s;
        int len=k.length();
        for(int i=0;i<len;i++)
            for(int j=i;j<5010;j+=len){
                if(k[i]>='A'&&k[i]<='Z')    miyao[j]=(int)(k[i]-'A');
                else    miyao[j]=(int)(k[i]-'a'); 
            }
        len=s.length();
        for(int i=0;i<len;i++){
            if(s[i]>='A'&&s[i]<='Z'){
                if(s[i]+miyao[i]>'Z')    s[i]=s[i]+miyao[i]-26;
                else    s[i]=s[i]+miyao[i];
            }
            else{
                if(s[i]+miyao[i]>'z')    s[i]=s[i]+miyao[i]-26;
                else    s[i]=s[i]+miyao[i];
            }
        }
        scanf("%d",&n);
        while(n--){
            int a,b;
            scanf("%d%d",&a,&b);
            string t1=s.substr(0,a-1);
            string t2=s.substr(a-1,b-a+1);
            string t3=s.substr(b,s.length()-b);
            reverse(t2.begin(),t2.end());
            s=t1+t2+t3;
        }
        cout<<s<<endl;
    }
    细雨斜风作晓寒。淡烟疏柳媚晴滩。入淮清洛渐漫漫。 雪沫乳花浮午盏,蓼茸蒿笋试春盘。人间有味是清欢。
  • 相关阅读:
    返回一个整数数组中最大子数组的和2
    RT-Thread之自动初始化
    Git
    基于STM32的FreeRTOS移植
    RT-Thread之debug使用
    大数的进制转换
    uva-10110
    UVA-10061
    算法训练Maze
    森林变树
  • 原文地址:https://www.cnblogs.com/cangT-Tlan/p/8034865.html
Copyright © 2020-2023  润新知