题目链接
题意:给一个字符串,对字符串重新排列使得该字符串含有的回文子串数目最多。
题解:先统计每种字符的个数,最开始卡在了如何组合两种或多种字符使回文子串最多,看官方题解,某种字符个数为X,包含X(X+1)/2个回文子串,只需要把每种字符放一起就行了。
#include #include #include #include #include #include #include #include #include //#include typedef long long LL; using namespace std; char s[100000]; int n; int cmp(char a, char b) { return a > b; } int main() { ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0); cin >> n; cin >> s; sort(s, s+ n, cmp); for (int i = 0; i < n; i++)cout << s[i]; }