单调队列优化DP

时间:2020-01-22 21:45:30   收藏:0   阅读:45

优化形如\(f_i=min/max(f_i,f_j+val_i)(l_i\leqslant j\leqslant r_i)\)\(DP\)方程

瑰丽华尔兹\(DP\)方程为\(f_{i,j}=max(f_{i,j},f_{i-dx_,j-dy}+dis_{i,j,i-dx_,j-dy})\)

\(code:\)

while(h<=t&&f[x][y]>q[t].val+dis(x,y,q[t].x,q[t].y)) t--;
q[++t]=(que){f[x][y],x,y};
while(h<=t&&(abs(x-q[h].x)>len||abs(y-q[h].y)>len)) h++;
f[x][y]=max(f[x][y],q[h].val+dis(x,y,q[h].x,q[h].y));
ans=max(ans,f[x][y]);
评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!