单调队列及单调队列优化DP详解
单调队列
详解博客
三个步骤:
判断队头决策与i的距离是否超出M的范围,若超出则出队
此时队头就是右端点为i时,左端点j的最优选择
不断删除队尾决策,直到队尾的S值小于S[i]。然后把i作为一个新的决策入队。
//单调队列板子 (区间和最大)
int l = 1, r = 1;
q[1] = 0;
for(int i = 1; i <= n; ++i){
while(l <= r && q[l] < i - m) l++; //step 1
ans = max
原创
2020-08-05 12:25:02 ·
285 阅读 ·
0 评论