【单调队列】 HDOJ One hundred layer
对于每一层只考虑左边的t个,右边的t个是同样的问题。。。。dp数组使用滚动数组,s1代表现在的状态,s2代表上一层的状态。。。。那么转移就是dp[s2][j] = max(dp[s2][j], dp[s1][k] - sum[k - 1] + sum[j])。。。。sum是前缀和数组。k是j前t个到j。。我们发现sum[j]可以看成常数,然后dp[s1][k] - sum[k-1] 可以用单调队列
原创
2015-07-10 10:41:41 ·
369 阅读 ·
0 评论