我只是给个思路,毕竟我也没完全A 就是三维的俄罗斯套娃 我定义的dp[i][j] 是取第i个广告,并且状态是j的最大时常 状态j 有6个,因为你可以0,1,2 0,2,1 1,0,2 1,2,0 2,0,1 2,1,0这样放 每种放法的长度不一样 对于每个状态dp[i][j] 我们需要遍历之前所有的 ii (ii < i) 如果 orders[ii] 的某种方法jj小于(小于的定义见原题)当前的方法,那么就可以转移 dp[i][j] = max(dp[i][j], dp[ii][jj] + current_length) 时间复杂度是O(6 * 6 * n * n)