[USACO08MAR]土地征用Land Acquisition】的更多相关文章

P2900 [USACO08MAR]土地征用Land Acquisition 题目描述 约翰准备扩大他的农场,眼前他正在考虑购买N块长方形的土地.如果约翰单买一块土 地,价格就是土地的面积.但他可以选择并购一组土地,并购的价格为这些土地中最大的长 乘以最大的宽.比如约翰并购一块3 × 5和一块5 × 3的土地,他只需要支付5 × 5 = 25元, 比单买合算. 约翰希望买下所有的土地.他发现,将这些土地分成不同的小组来并购可以节省经费. 给定每份土地的尺寸,请你帮助他计算购买所有土地所需的最小费…
洛谷题目传送门 用两种不一样的思路立体地理解斜率优化,你值得拥有. 题意分析 既然所有的土地都要买,那么我们可以考虑到,如果一块土地的宽和高(其实是蒟蒻把长方形立在了平面上)都比另一块要小,那么肯定是直接并购,这一块对答案没有任何贡献. 我们先把这些给去掉,具体做法可以是,按高为第一关键字,宽为第二关键字从大到小排序,然后上双指针扫一遍. 于是,剩下的就是一个高度递减.宽度递增的矩形序列.考虑怎样制定它们的并购方案会最优.显然如果要并购,一定要挑序列中的一段区间,这样贡献答案的就只有最左边矩形的…
土地征用 (Link) 约翰准备扩大他的农场,眼前他正在考虑购买N块长方形的土地.如果约翰单买一块土 地,价格就是土地的面积.但他可以选择并购一组土地,并购的价格为这些土地中最大的长 乘以最大的宽.比如约翰并购一块3 × 5和一块5 × 3的土地,他只需要支付5 × 5 = 25元, 比单买合算. 约翰希望买下所有的土地.他发现,将这些土地分成不同的小组来并购可以节省经费. 给定每份土地的尺寸,请你帮助他计算购买所有土地所需的最小费用. 输入输出格式 输入格式: \(Line\) \(1:\)…
写这道题时,预处理部分少打了等号,吓得我以为斜率优化错了或者被卡精了 mmp 首先有一个很明显的结论(逃),就是一个土地如果长(\(x\))与宽(\(y\))都比另一个土地小,那么这个土地一定可以跟那另一个一起买,所以这样被包含的土地不会贡献答案.我们只要把长作为第一关键字,宽作为第二关键字,从小到大排个序,然后被包含的土地去掉.这样就剩下一堆\(x\)递增,\(y\)递减的土地. 容易列出转移方程\[f_i=min(f_j+x_iy_{j+1})\] 然而数据范围有50000,n方过不去 发现…
题目链接 双倍经验 设\(H\)表示长,\(W\)表示宽. 若\(H_i<H_j\)且\(W_i<W_j\),显然\(i\)对答案没有贡献. 于是把所有点按\(H\)排序,然后依次加入一个按\(W\)降序排序的单调栈. 这个单调栈里就是一定对答案有贡献的点,现在的问题就是把这些点分段,使总费用最小. 设\(f[i]\)表示前\(i\)块土地的最小费用. 然后枚举断点\(0<=j<i\),则\(f[i]=\min(f[j]+W_{j+1}*H_i)\) 斜率优化搞一搞就行了. //…
题面在这里 题意 约翰准备扩大他的农场,眼前他正在考虑购买N块长方形的土地. 如果约翰单买一块土地,价格就是土地的面积,但他可以选择并购一组土地, 并购的价格为这些土地中最大的长乘以最大的宽. 给定每份土地的尺寸,请你帮助他计算购买所有土地所需的最小费用. 数据范围 \[1 \le N \le 50000,1 \le width_i,length_i\le 10^6\] sol 我们发现,如果一块土地被另一块土地所包含(即长和宽都比另一块土地小), 那么只需购买那另一块土地即可,于是我们可以据此…
题意 约翰准备扩大他的农场,眼前他正在考虑购买N块长方形的土地.如果约翰单买一块土 地,价格就是土地的面积.但他可以选择并购一组土地,并购的价格为这些土地中最大的长 乘以最大的宽.比如约翰并购一块3 × 5和一块5 × 3的土地,他只需要支付5 × 5 = 25元, 比单买合算. 约翰希望买下所有的土地.他发现,将这些土地分成不同的小组来并购可以节省经费. 给定每份土地的尺寸,请你帮助他计算购买所有土地所需的最小费用. 题解 一道斜率优化 我们先考虑一下,如果某一块土地的长和宽小于等于另一块土地…
\(\color{#0066ff}{ 题目描述 }\) 约翰准备扩大他的农场,眼前他正在考虑购买N块长方形的土地.如果约翰单买一块土 地,价格就是土地的面积.但他可以选择并购一组土地,并购的价格为这些土地中最大的长 乘以最大的宽.比如约翰并购一块3 × 5和一块5 × 3的土地,他只需要支付5 × 5 = 25元, 比单买合算. 约翰希望买下所有的土地.他发现,将这些土地分成不同的小组来并购可以节省经费. 给定每份土地的尺寸,请你帮助他计算购买所有土地所需的最小费用. \(\color{#006…
斜率优化dp. 首先发现如果存在$x$和$y$使得$len(x) \geq len(y)$并且$wid(x) \geq wid(y)$,那么$y$直接不考虑就好了,因为在买$x$的时候就把$y$顺便带上了. 随便按照$x$或者$y$排一波序就能很方便地处理了. 接下来就可以设计dp了,设去重之后有$tot$个元素,$f_{i}$表示$1~i$地代价的最小值. 如果按照$len$从大到小排序,此时在排完序的序列中一定也满足$wid$不递增. 有转移方程:$f_{i} = min(f_{j} + l…
自闭的一批....为什么斜率优化能这么自闭. 首先看到这个题的第一想法一定是按照一个维度进行排序. 那我们不妨直接按照\(h_i\)排序. 我们令\(dp[i]\)表示到了第\(i\)个矩形的答案是多少. 之后我们会发现,对于\(dp[i]\)的转移 \[dp[i]=dp[j-1]+h[j]*mn[j][i] \] 其中\(mn[j][i]\)表示\(j到i\)的最小值. qwq我们发现对于一个含有最值的柿子,他没法转移qwq 那我们不妨仔细考虑一下. 对于一个排在\(i\)后面的矩阵\(j\)…