1. 程式人生 > >cf516div1A Oh Those Palindromes 結論+思維

cf516div1A Oh Those Palindromes 結論+思維

題意

給一個長度為n的字串,問如何重組使得字串中迴文的子串數目最多。例如aaa的迴文子串個數是a,a,a,aa,aa,aaa,一共6個。

題解

一個出現x次的字元c,能構成的迴文子串個數是 x ( x +

1 ) 2 \frac{x*(x+1)}{2} , 這裡有個結論是,將相同的字元連在一起組成的字串中包含的迴文子串個數是最多的。所以sort一遍就好。

#include <bits/stdc++.h>
using namespace std;

int
main() { int n; string s; cin >> n >> s; sort(s.begin(), s.end()); cout << s << endl; return 0; }