摘要:
题目大意:给定一个长度为 N 的序列,每个位置有一个权值,现选出一些点,满足相邻的 M 个点中至多有 Q 个点被选择,求选出点权的最大值是多少。 题解:若没有相邻的限制,这道题类似于子集和问题,即:背包问题。考虑相邻的限制,对于每个点可以记录下一个状态,代表以这个点结束,向前 M 个点的选择情况,0 阅读全文
摘要:
题目大意:给定一个长度为 N 的字符串,求前 K 个长度为奇数的回文子串的长度的乘积是多少。 题解:利用回文自动机,将所有长度的回文串和个数求出来,按照长度排序进行模拟即可。 代码如下 cpp // luogu judger enable o2 include using namespace std 阅读全文
摘要:
题目大意:给定一个长度为 N 的字符串 S,求 S 的最长双回文子串的长度,双回文子串定义为是 S 的一个子串,可以分成两个互不相交的回文子串。 题解:利用回文自动机 len 数组的性质,即:len 数组记录的是以每个点 i 字符结尾的,向左可以延伸的,最长回文串的长度。正向遍历一遍串 S,统计出对 阅读全文