求一个字符串中最长回文串的长喥
首先我们先在字符串空隙中插入符号,以便处理偶数长度的回文串
i为中心最多能往旁边扩展的长度,maxright为当前匹配到的最右边的回文串mid右边,那么根据回文字符串的对称性可以知道它的对称点hwj?≤hwi?,我们就可以直接用hwi?然后再扩展,要注意用maxright因为不一定满足對成性。
max{hwi?}?1因为一开始我们在字符串空隙中插入了符号,所以不用
氵谷第二道黑题唉qwq
思想很巧妙對于一个数x,将区间[l,r]中比他大的数赋为1比他小的数赋为-1,那么判断一个数是否大于等于中位数就等价于了区间和是否大于等于0
所以这個性质就可以应用到二分答案上,每次check(mid)的时候直接判区间和是否大于等于0
然后考虑如何维护这个区间和,首先发现可以将所有的1和-1的主席树建出来因为后一个主席树只会在前一个的基础上将一个位置变为-1。
对于题目的限制[a,b],[c,d]发现最大中位数对应的区间和是由[a,b]最大后缀和+[b+1,c-1](如果b+1<=c-1的话)区间和+[c,d]最大前缀和,所以直接记录这个值如果>=0则说明中位数>=mid,记录l向上调整,否则向下调整
求一个字符串中最长回文串的长喥
首先我们先在字符串空隙中插入符号,以便处理偶数长度的回文串
i为中心最多能往旁边扩展的长度,maxright为当前匹配到的最右边的回文串mid右边,那么根据回文字符串的对称性可以知道它的对称点hwj?≤hwi?,我们就可以直接用hwi?然后再扩展,要注意用maxright因为不一定满足對成性。
max{hwi?}?1因为一开始我们在字符串空隙中插入了符号,所以不用