题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6570
题目大意:
给你长度为N,$1\leq N\leq100000$的一个数组,其中元素在$[1,c] 1\leq c\leq 100$之内,求一个最长的子序列满足奇数位数字都相同,偶数位数字也都相同,但是奇偶位之间不同,问你子序列的长度
思路
定义$dp[i][j]$为以i为结尾,且前一个数字是j的合法子序列的长度,根据题意,当$i=j$时没有合法的子序列,所以值为0,对于数组中第一个数字来说,只要$i\neq j$那么$dp[i][j]=1$
根据奇偶的数字相同可以简单得到状态转移方程为:$dp[i][j]=dp[j][i]+1$
i就从数组中一个数字一个数字的取
AC代码
1 |
|