bzoj1597 土地購買 動態規劃 斜率優化

2021-07-09 09:12:40 字數 737 閱讀 9069

最最基礎的斜率優化(這麼基礎的斜率優化還wa這麼多發

顯然如果a[i]>=a[j]且b[i]>=b[j],j是沒有什麼卵用的,直接去掉,那麼如果將a降序排序,可以發現b一定是公升序的。從而顯然有方程,f[i]=min。那麼對於j=s(j,k)時k比j更優。那麼當s(i,j)>s(j,k),且i

p·s:然而我犯了sb錯誤,注意到上面a[j+1],顯然這個a是處理後的,即a[j]和a[j+1]都應該是符合要求的。而我一開始寫的時候只是保證了j是合法的。。。結果出資料死活出不出來,比如說: 2

7 10

9 2我原來的程式會輸出88

然而在裡面加一些會被捨去的解就會輸出90。。o(╯□╰)o。。這怎麼想得到啊。。。(果然還是萬能的對拍**)

看來還是要先把合法佇列求出來呢。。

ac**如下:

#include#include#include#include#define n 100005

#define ll long long

using namespace std;

int n,cnt,q[n]; ll f[n]; struct nodea[n];

bool cmp(node aa,node bb)

int main()

printf("%lld\n",f[cnt]);

return 0;

}

by lych

2016.1.9

bzoj1597 土地購買

description 地主想買一些長方形的土地,所有的土地可以分為若干組,每一組的土地的 為這一組裡的最長的長乘上最長的寬。土地的長和寬是不能交換的,例如一塊2 5的土地和一塊5 2的土地放在一起,為5 5 25。最少花費多少錢可以買下所有的土地。input 第一行乙個數n表示一共有n塊土地。接下...

BZOJ 1597 土地購買

傳送門 思路 顯然如果不對輸入資料加以處理,這道題就只能用 o 3n o 3 n 的動態規劃來做。由於購買土地的花費等於最大的長乘以最大的寬,我們可以發現,若一塊土地的長寬比另一塊土地的長寬都大,那麼另一塊土地是沒有用的。所以我們考慮刪去另一塊。顯然這是乙個偏序問題,我們把土地按長排序。要刪去長寬都...

bzoj1597 土地購買 斜率優化

農夫john準備擴大他的農場,他正在考慮n 1 n 50,000 塊長方形的土地.每塊土地的長寬滿足 1 寬 1,000,000 1 長 1,000,000 每塊土地的 是它的面積,但fj可以同時購買多快土地.這些土地的 是它們最大的長乘以它們最大的寬,但是土地的長寬不能交換.如果fj買一塊3x5的...