题目
Famer John准备扩大他的农场,他正在考虑$N$块长方形的土地。每块土地的价格是它的面积,但FJ可以同时购买多快土地。这些土地的价格是它们最大的长乘以它们最大的宽,但是土地的长宽不能交换。如果FJ买一块$3\times 5$的地和一块$5\times 3$的地,则他需要付$5\times 5=25$元。FJ希望买下所有的土地,但是他发现分组来买这些土地可以节省经费。他需要你帮助他找到最小的经费。
数据范围
$1\leq N \leq 50000 \quad 1\leq 长,宽\leq 10^6$
做法
观察到,较小的土地可以在买大土地的时候顺带买(送?)了。于是,将土地按$(w,h)$字典序从小到大排序,将小的土地去掉,类似单调栈的维护。剩下的土地全是按照$w$递增,$h$递减的顺序来排列了。
用反证法,易证,取连续的土地一起买是最优的。
DP方程为:$dp[i]=min_{0≤j<i}(dp[j]+h[j+1]\times w[i]]) $
显然可以斜率优化。
代码
|
|