Skip to main content
  1. Posts/

斜率优化学习笔记

·1 min
Note: This article is available in Chinese only. 本文暂无英文版本。 View original

参考博客

这个东西英文好像叫做:convex hull trick

Convex_hull_trick_wiki codeforces convex hull trick

简单说说我的理解:斜率优化是一种数形结合的思想。。。

对于一个dp的若干状态。。。有些状态是不会对答案有贡献的。。。这些我们就可以不考虑。。。

简单地说。。。如果把状态的下标和状态对应成二维平面的点。。。

凸起来的点一定不会影响答案。。。

具体证明参考论文。。。。。

也就是维护一个"下凸折线"

具体维护的办法是用单调队列来维护。。。

感觉还是挺简单的。。。。

Related

codeforces 429 B. Working out (dp)

·2 mins
cf429 b 题目链接 题意: n*m个格子,每个格子有一个人value a[i][j]>0,连个人,一个从左上角到右下角,每次只能向下或者向右移动,一个从左下到右上,每次只能向上或者向右移动,现在要求两个人恰好相遇一次,相遇点的a不算数,问在满足这样的条件下使得两个人的a最大。。。(很坑的一点是。。这里相遇并不考虑时间。。就是说,不在同一时间都到达过某一格子,也认为相遇。所以我认为,题目含义更准确的说法是,路径只有一个交点)

hdu 2018 母牛的故事 (基础dp,记忆化搜索)

·2 mins
hdu2018题目链接 题意:第1年有1头奶牛,每年生一头奶牛,新生的奶牛从生下来的第四年(包括生下来那年)也开始每年一头奶牛。 问第n年有多少头奶牛。 思路:最容易想到的。。递推一下。。。dp[i] = dp[i-1] + dp[i-3] (注意初始化不是一个dp[1]=1,而是dp[1..4]=1..4)

hdu 2084 数塔 (基础dp)

·1 min
hdu2084题目链接 题意:dp入门题。。。数字三角形。。 思路: 昨天看mit公开课。。。讲到dp的精髓是sub-problem+ reuse…

hdu 4283 You Are the One (区间dp)

·2 mins
hdu 4283题目链接 题意:有N个人按顺序排成一排上台表演,每个都有一个num[]值,若在他是第k个上场的人,则会有num[]*(k-1)的unhappiness。台下有一个黑屋(stack),对每一个人,可以选择让他先进屋子或者直接上台。现在让你找到一个最优方案使得所有人的unhappiness之和最小。