CF1063A Oh Those Palindromes

CF1063A Oh Those Palindromes

 

 

给你一个字符串,让你从新给这些字符排序,使得排序后回文子串的个数尽可能多,多解输出一组便可c++

 

 

仍是太弱啦,看了题解spa

首先只有一种字符$a$,那么就是$aa$code

考虑加入一个新的字符,$aab$和$aba$blog

原回文串的回文子串的个数是$3$排序

那么插入中间获得的回文子串的个数是$3$ci

而插入一边获得的回文子串的个数是$4$字符串

 

若是这个原回文字符是奇数个,即$aaa$get

考虑将$b$插入其中,$abaa$或$aaab$it

其回文子串个数分别是$6$和$7$io

 

可见插入中间其获得的方案数反而不会增长,甚至会致使其中的有些字符会不匹配

 

结论是:使每个字符尽可能独立获得的答案才是最优的

 

#include<bits/stdc++.h>

using namespace std;

int n;
char a[100005];

int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++) cin>>a[i];
    sort(a+1,a+1+n);
    for(int i=1;i<=n;i++) cout<<a[i];
    
    
    return 0;
}
相关文章
相关标签/搜索