D2. Xor-Subsequence (hard version)
昨天cf的E题,挺好的一个DP优化问题。
暴力的DP就是设dp[i]表示以i结尾的最长长度。转移时枚举之前的所有j,复杂度O(n^2)。
考虑怎么优化,优化往往都是从转移条件上做文章的,我们考虑当前i的dp值怎么计算,
是所有max(f[j]+1),而且这些j满足\(a_i\)^\(j\) <\(a_j\)$i$。左边小于右边,又与异或有关,所以考虑二进制,在二进制下,一定满足一个k,使得从高到底数,前k-1位两者都相等,第k位右边为1,左边为0.那么倘若我们只考虑这前k-1位的话,可以发现aij