题意:
给你1e6的字符串,保证只含'a''b''c'三种字符,且相邻两个字符一定不一样
求一个大于等于n/2的回文子序列
思路:
朴素的最长回文子序列是n方的区间dp,这题显然不行,要充分利用题中所给的条件
我们发现,在任意不相交的两个区间[l,l+1]与[r,r+1]中
有两组相邻的字母,一共四个字母,而题目保证了每组两个相邻的字母肯定不同,
所以这四个字母中最多有3种字母,又因为每组字母不相同,所以这两个区间中一定有一个相同的字母
这题就搞完了
代码:
#include #include #include //#include #include #include #include #include #include #include #include #include