manecher】的更多相关文章

#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; ],s[]; ],ans,k=-,m=; void manacher() { ,id=,x=; ;i<=n-;i++) { ; *id-i],pos-i); while(s[i+x]==s[i-x]) x++; p[i]=x; if(i+x>pos) { po…
Palindrome Time Limit: 15000MS Memory Limit: 65536K Total Submissions: 12214 Accepted: 4583 Description Andy the smart computer science student was attending an algorithms class when the professor asked the students a simple question, "Can you propos…
Dima adds letters s1, …, sn one by one to the end of a word. After each letter, he asks Misha to tell him how many new palindrome substrings appeared when he added that letter. Two substrings are considered distinct if they are different as strings.…
链接:https://www.nowcoder.com/acm/contest/57/E 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 有一串有n颗珠子的项链,每颗珠子上有一个数字,从顺时针方向看依次是第1,2,…,n个珠子,第n个珠子之后是第1个珠子.但是小G觉得这串项链的造型不够美观,他决定用这串项链上的珠子造出一个新的项链,并且他希望这串新的项链是对称的. 一串项链是对称的,当且仅当…
Definition 定义一个回文串为从字符串两侧向中心扫描时,左右指针指向得字符始终相同的字符串. 使用manacher算法可以在线性时间内求解出一个字符串的最长回文子串. Solution 考虑回文串有两种:第一种对称轴在两字符之间,另一种对称轴在一个字符中心.这样分情况讨论十分不方便,我们使用一种奇技淫巧将之统一成长度为奇数的回文串,即对称轴在字符中心:将原串每两个字符之间都添加一个相同的.不在原串中的字符.显然长度为偶数的回文串对称轴会在添加的字符上,问题就得到了解决.例如: 接着发现一…
 考前: 考试前把读入优化和库以及对拍文件打好做好准备工作,另外注意放松心态,太紧张了肯定考不好··将自己的注意力集中起来  考场策略: 考试的基本策略是对每于道题先想个20分钟,如果想不出个靠谱的方法就把赶紧暴力打了一定要打暴力,想不出正解要打暴力,想出了正解对拍也要打暴力,而且把暴力打了之后心里都踏实得多··起码保底了,打完后再想正解.   题目思考: 先要确定大体方向:模拟(往往只有第一题),策略(贪心等),数学,数据结构,图论,dp,字符串,树,二分,三分,搜索,(多半会加上剪枝折半记搜…
[昨晚打校赛,5个小时打完很累了,所以搞忘出题了...对不起学弟们,不过出的题都亲自写过一遍,可以保证题目和代码长度都不长,题目难度不大] [A:bush博弈] #include<bits/stdc++.h> using namespace std; int main() { int T,N,K; scanf("%d",&T); while(T--){ scanf("%d%d",&N,&K); )==) puts("B&…