题目大意
给出一个长度为 n n n的序列,对于所有 1 < = k < = n 1 <= k <= n 1<=k<=n ,求出所有长度为 k k k的的子序列的权值。我们定义一个子序列的权值为该子序列中奇数项的和减去偶数项的和,从 1 1 1开始标号。
分析
这题是 J Z O J 6355 JZOJ6355 JZOJ6355的强化版,强化了数据范围,但是用原算法依然可以通过本题。首先这道题有个非常重要的结论,容易猜想但证明却比较繁琐。对于一个长度为 c c c的序列,其中会存在一种最优解是由 c − 2 c - 2 c−2的序列转移得来的。所以这样的话,我们考虑用CDQ分治处理这道题。设 f [ i ] [ 0 / 1 ] [ l ] f[i][0/1][l] f[i][0/1][l]表示在分治的第