CF1063A Oh Those Palindromes 奇技淫巧
阿新 • • 發佈:2018-11-02
傳送門(當然上洛咕能搜到)
求指定字串最多回文子串個數
Ssy太強了...
學到一個新東西 就是如果一個字元有x個
那麼它能產生的最多的迴文串個數為C(x,2)
可以理解為選擇兩個字母作為邊界
然後發現 如果所有一樣的字母全都拼在一起 那麼總個數就是C(x,2)
所以答案就是一樣的放一起就OK
Code:
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<queue> 5 #include<string> 6#define ms(a,b) memset(a,b,sizeof a) 7 #define rep(i,a,n) for(int i = a;i <= n;i++) 8 #define per(i,n,a) for(int i = n;i >= a;i--) 9 #define inf 1000000007 10 using namespace std; 11 typedef long long ll; 12 typedef double D; 13 #define eps 1e-8 14 ll read() { 15 ll as = 0,fu = 1; 16 char c = getchar();17 while(c < '0' || c > '9') { 18 if(c == '-') fu = -1; 19 c = getchar(); 20 } 21 while(c >= '0' && c <= '9') { 22 as = as * 10 + c - '0'; 23 c = getchar(); 24 } 25 return as * fu; 26 } 27 //head 28 int n; 29 char a[1000005]; 30 int main() {31 n = read(); 32 scanf("%s",a+1); 33 sort(a+1,a+n+1); 34 puts(a+1); 35 return 0; 36 }