社区讨论

90分,求助

P1098[NOIP 2007 提高组] 字符串的展开参与者 3已保存回复 4

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
4 条
当前快照
1 份
快照标识符
@m1lxp3m4
此快照首次捕获于
2024/09/28 17:13
去年
此快照最后确认于
2025/11/04 18:35
4 个月前
查看原帖
CPP
#include<iostream>
#include<cstring>
using namespace std;
long long p1,p2,p3;
string a;
int main(){
    cin>>p1>>p2>>p3;
    cin>>a;
    string ans="";
    for(int i=0;i<a.size();i++){
        if(a[i]=='-'){
            if(i!=0&&i!=a.size()){
            if(((a[i-1]<='9'&&a[i-1]>='0'&&a[i+1]<='9'&&a[i+1]>='0')||(a[i-1]<='z'&&a[i-1]>='a'&&a[i+1]<='z'&&a[i+1]>='a'))&&a[i-1]<a[i+1]){
                if(p1==1){
                    if(p3==1){
                        char x=a[i-1];
                        while(x+1!=a[i+1]){
                            for(int j=0;j<p2;j++){
                                ans+=x+1;
                            }
                            x=x+1;
                        }
                    }
                    if(p3==2){
                        char x=a[i+1];
                        while(x-1!=a[i-1]){
                            for(int j=0;j<p2;j++){
                                ans+=x-1;
                            }
                            x=x-1;
                        }
                    }
                }
                if(p1==2){
                    if(p3==1){
                        char x=a[i-1]-'a'+'A';
                        while(x+1!=a[i+1]-'a'+'A'){
                            for(int j=0;j<p2;j++){
                                ans+=x+1;
                            }
                            x=x+1;
                        }
                    }
                    if(p3==2){
                        char x=a[i+1]-'a'+'A';
                        while(x-1!=a[i-1]-'a'+'A'){
                            for(int j=0;j<p2;j++){
                                ans+=x-1;
                            }
                            x=x-1;
                        }
                    }
                }
                if(p1==3){
                    char x=a[i-1];
                    while(x+1!=a[i+1]){
                        for(int j=0;j<p2;j++){
                            ans+='*';
                        }
                        x=x+1;
                    }
                }
            }
            else{
                ans+='-';
            }}
            else    ans+='-';
        }
        else    ans+=a[i];
    }
    cout<<ans<<endl;
    return 0;
}

回复

4 条回复,欢迎继续交流。

正在加载回复...