AIM Tech Round 3 (Div. 2) C. Letters Cyclic Shift 贪心、字典序

ProLightsfx 2016-8-26 150 8/26
C. Letters Cyclic Shift 贪心、字典序

My Solution

贪心、字典序

必须改一个子串使得得到的新串字典序最小

所以从左往右改第一个不是a的, 然后连着的都要改直到碰到一个a为止

但是exactly one non-empty substring 

所以全是a的时候也要改, 把最后一个a改成 z

 

#include 
#include 
#include 
using namespace std;
typedef long long LL;
const int maxn = 1e6 + 8;

string s;

int main()
{
    #ifdef LOCAL
    freopen("c.txt", "r", stdin);
    //freopen("o.txt", "w", stdout);
    int T = 3;
    while(T--){
    #endif // LOCAL
    ios::sync_with_stdio(false);
    cin.tie(0);

    cin>>s;
    int sz = s.size();
    bool flag = false;
    char ch;
    for(int i = 0; i < sz; i++){
        if(!flag){
            if(s[i] == 'a') ;
            else{
                flag = true;
                ch = s[i];
                s[i] = (ch - 1);
            }
        }
        else{
            if(s[i] == 'a') break;
            else{
                ch = s[i];
                s[i] = (ch - 1);
            }
        }

    }
    if(!flag){
        s[sz - 1] = 'z';
    }
    cout<<s<<endl;

    #ifdef LOCAL
    cout<<endl;
    }
    #endif // LOCAL
    return 0;
}

 

非特殊说明,本博所有文章均为博主原创,未经许可不得转载。

https://www.prolightsfxjh.com/

Thank you!

                                                                                                                                             ------from ProLightsfx

- THE END -

ProLightsfx

11月17日01:47

最后修改:2024年11月17日
0

非特殊说明,本博所有文章均为博主原创,未经许可不得转载。

共有 0 条评论