第一篇文章\ovo/
A
Problem:把只含有ab的字符串分成三份,使中间的字符串字典序是并列最大或最小,求一种方案
Solution:
假设前两个字符相同,让前两个字符串长度均为1,这两个字符串相等,中间串一定是并列最大或最小
否则如果前两个是ab,按a|bxxxxxx|x,中间串一定最大
否则按b|a|xxxxxxx,中间串一定是最小
Code:
#include<bits/stdc++.h> #define ll long long using namespace std; char c[200010]; int main(){ int t;scanf("%d",&t); while(t--){ scanf("%s",c+1); int n=strlen(c+1); if(c[1]==c[2]){ cout<<c[1]<<' '<<c[2]<<' '; for(int i=3;i<=n;i++)putchar(c[i]); cout<<endl; } else if(c[1]=='a'){ cout<<c[1]<<' '; for(int i=2;i<=n-1;i++)putchar(c[i]);cout<<' '; cout<<c[n]<<endl; } else { cout<<c[1]<<' ';cout<<c[2]<<' '; for(int i=3;i<=n;i++)putchar(c[i]);cout<<endl; } } return 0; }
标签:ab,843,int,Codeforces,long,字符串,Div From: https://www.cnblogs.com/flaranis/p/17048094.html