給你一個字符串,讓你從新給這些字符排序,使得排序後迴文子串的個數儘可能多,多解輸出一組便可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; }