CF1063A Oh Those Palindromes
CF1063A Oh Those Palindromes
给你一个字符串,让你重新给这些字符排序,使得排序后回文子串的个数尽量多,多解输出一组即可
还是太弱啦,看了题解
首先只有一种字符$a$,那么就是$aa$
考虑加入一个新的字符,$aab$和$aba$
原回文串的回文子串的个数是$3$
那么插入中间得到的回文子串的个数是$3$
而插入一边得到的回文子串的个数是$4$
如果这个原回文字符是奇数个,即$aaa$
考虑将$b$插入其中,$abaa$或$aaab$
其回文子串个数分别是$6$和$7$
可见插入中间其得到的方案数反而不会增加,甚至会导致其中的有些字符会不匹配
结论是:使每一个字符尽量独立得到的答案才是最优的
#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; }
博主蒟蒻,若有出错的地方,敬请指出。
如有侵犯您版权的地方,请快速联系我,我会撤回本博文。