Contest
今天学到的convex hull trick:这东西应该叫凸壳优化
开始一直把它和斜率优化混起来,其实完全不一样。
convex hull trick中只要求函数是相同的凸函数,这样每个决策点一定对应一个前缀或者后缀的决策区间(具体看是上凸还是下凸,取min还是max)
所以我们可以维护一个决策点的栈,栈顶作为前缀的决策点。每次新加入点,可以O(1)计算或者二分出相较于当前栈顶,该点的决策区间(一个前缀)如果可以作为决策点就加入
convex hull trick并不是维护凸壳,只是函数是凸的而已
而斜率优化则是维护一个凸壳,通常是把决策点看成直线或点
总结
今天比赛的成绩非常糟糕!一个简单的斜率优化都没有调出来。以为自己都会做,但是实现的细节上根本没有理清楚。
对于DP优化,决策点的细节我非常差,必须多练习。
必须推清楚式子,想清楚转移的细节
今天晚上写一道经典的convex hull trick,调了1个小时都没有调出来,非常低效!