通常是维护一个一阶导单调递增/递减的序列,单调队列的最后一个元素即为最优解
已知xi,bix_i,b_ixi,bi,每次询问给定一个k(k>0)k(k>0)k(k>0),对于yi=kxi+biy_i=kx_i+b_iyi=kxi+bi,求使得yiy_iyi最大的iii
首先,直觉告诉我们,如果i<ji<ji<j且xi<xj,bi<bjx_i<x_j,b_i<b_jxi<xj,bi<bj,那么iii一定不是最优解,可以把iii去掉
接下来我们考虑3条直线之间的关系
分块,并对每一个块维护一个凸包,遇到要更新的块,直接暴力重建凸包
← 一两句话小技巧 哈希函数(Hash)函数的设计→