首页 > 其他 > 详细

洛谷 P1703 那个什么密码2

时间:2017-12-13 21:15:22      阅读:170      评论:0      收藏:0      [点我收藏+]

题目背景

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;
}

 

 

洛谷 P1703 那个什么密码2

原文:http://www.cnblogs.com/cangT-Tlan/p/8034865.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!