做网站的条件,wordpress标题关键词,上海公司名义买房条件,WordPress用阿里云云数据库CF1063A Oh Those Palindromes
题意#xff1a;
一个非空字符串叫做回文串。如果它从左到右#xff0c;从右到左读相同#xff0c;那么它就是回文串。 例如#xff0c;“ABCBA”,“A”和“ABBA”都是回文串#xff0c;而“ABAB”和“XY”则不是。
如果可以通过从字符串…CF1063A Oh Those Palindromes
题意
一个非空字符串叫做回文串。如果它从左到右从右到左读相同那么它就是回文串。 例如“ABCBA”,“A”和“ABBA”都是回文串而“ABAB”和“XY”则不是。
如果可以通过从字符串的开头和结尾删除一些可能为零字符来从该字符串获得新字符串 则新字符串叫做另一个字符串的子字符串。 例如“ABC”、“AB”和“C”是字符串“ABC”的子串而“AC”和“D”不是。
我们把字符串的“回文计数”定义为回文的子串个数。 例如字符串“aaa”的回文计数是6因为它的所有子字符串都是回文 而字符串“abc”的回文计数是3因为只有长度为1的子字符串是回文。
给你一个字符串S。你可以任意地重新排列它的字符求它的回文计数最大值。
题解
比赛时写写各自情况通过的也不少就盲猜只要相同的靠在一起好像就行结果真过了但是不知道怎么证明 考虑简单情况对于只含一种元素的串我们要插入其他元素 记原有元素为a新加元素为b 考虑b的最优插入位置 原串aaaa…aa插入b 设b在串中的插入位置为pos插入后原本的回文串[pos−i,posj](i!j)[pos−i,posj] (i!j)[pos−i,posj](i!j)会因此不匹配 所以这样不会使得原串匹配结果变多 所以我们要让各个元素独立才是最优方案
代码
#include bits/stdc.h
#include unordered_map
#define debug(a, b) printf(%s %d\n, a, b);
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
typedef pairint, int PII;
clock_t startTime, endTime;
//Fe~Jozky
const ll INF_ll 1e18;
const int INF_int 0x3f3f3f3f;
void read(){};
template typename _Tp, typename... _Tps void read(_Tp x, _Tps... Ar)
{x 0;char c getchar();bool flag 0;while (c 0 || c 9)flag| (c -), c getchar();while (c 0 c 9)x (x 3) (x 1) (c ^ 48), c getchar();if (flag)x -x;read(Ar...);
}
template typename T inline void write(T x)
{if (x 0) {x ~(x - 1);putchar(-);}if (x 9)write(x / 10);putchar(x % 10 0);
}
void rd_test()
{
#ifdef ONLINE_JUDGE
#elsestartTime clock ();freopen(data.in, r, stdin);
#endif
}
void Time_test()
{
#ifdef ONLINE_JUDGE
#elseendTime clock();printf(\nRun Time:%lfs\n, (double)(endTime - startTime) / CLOCKS_PER_SEC);
#endif
}
int a[40];
int main()
{//rd_test();int n;read(n);string s;cins;for(int i0;is.length();i){int xs[i]-a;a[x];}
// queueintq;
// stackints;for(int i0;i26;i){while(a[i]--){cout(char)(ia);} }//Time_test();
}