bzoj3437 小p的牧場 斜率優化dp

2021-07-10 16:59:31 字數 916 閱讀 5997

背景

小p是個特麼喜歡玩mc的孩紙。。。

描述小p在mc裡有n個牧場,自西向東呈一字形排列(自西向東用1…n編號),於是他就煩惱了:為了控制這n個牧場,他需要在某些牧場上面建立控制站,每個牧場上只能建立乙個控制站,每個控制站控制的牧場是它所在的牧場一直到它西邊第乙個控制站的所有牧場(它西邊第乙個控制站所在的牧場不被控制)(如果它西邊不存在控制站,那麼它控制西邊所有的牧場),每個牧場被控制都需要一定的花費(畢竟在控制站到牧場間修建道路是需要資源的嘛~),而且該花費等於它到控制它的控制站之間的牧場數目(不包括自身,但包括控制站所在牧場)乘上該牧場的放養量,在第i個牧場建立控制站的花費是ai,每個牧場i的放養量是bi,理所當然,小p需要總花費最小,但是小p的智商有點不夠用了,所以這個最小總花費就由你來算出啦。

第一行乙個整數 n 表示牧場數目

第二行包括n個整數,第i個整數表示ai

第三行包括n個整數,第i個整數表示bi

只有一行,包括乙個整數,表示最小花費

42424

3142

9樣例解釋

選取牧場1,3,4建立控制站,最小費用為2+(2+1*1)+4=9。

資料範圍與約定

對於100%的資料,1<=n<=1000000,0

題解:同bzoj1096.

**:#include#include#include#define n 1000010

using namespace std;

int q[n],n,l,r;

long long s[n],a[n],p[n],sp[n],c[n],f[n];

long long g(int a,int b)

long long s(int a,int b)

double work(int a,int b)

int main()

cout<

bzoj 3437 小P的牧場(斜率DP)

time limit 10 sec memory limit 128 mb submit 1493 solved 830 submit status discuss 小p在mc裡有n個牧場,自西向東呈一字形排列 自西向東用1 n編號 於是他就煩惱了 為了控制這n個牧場,他需要在某些牧場上面建立控制站...

bzoj 3437 小P的牧場 斜率優化

time limit 10 sec memory limit 128 mb 小p在mc裡有n個牧場,自西向東呈一字形排列 自西向東用1 n編號 於是他就煩惱了 為了控制這n個牧場,他需要在某些牧場上面建立控制站,每個牧場上只能建立乙個控制站,每個控制站控制的牧場是它所在的牧場一直到它西邊第乙個控制站...

BZOJ3437 小P的牧場(斜率優化dp)

傳送門 這種題就是用來水的。fi max si表示總費用和,di表示距離 相當於題目中有多少個點 ci表示放養數量,ai表示費用,都是字尾和。喔然後斜率優化。include include include using namespace std define ll long long const i...