bzoj 1010 玩具裝箱

2022-06-01 04:51:11 字數 704 閱讀 5049

題目大意:

有n個數,分成連續的若干段,每段(假設從第j個到第i個組成一段)的分數為 (x-l)^2,x為j-i+sigma(ck) i<=k<=j,其中l是乙個常量

使各段分數的總和最小

思路:斜率優化dp入門題

寫出dp方程之後用單調佇列維護凸包即可

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9

#define inf 2139062143

10#define ll long long

11#define maxn 50010

12using

namespace

std;

13 inline int

read()

1417

while(isdigit(ch))

18return x*f;19}

20int

n,m,l,r,q[maxn];

21ll s[maxn],dp[maxn];

22double slop(int i,int j)

23int

main()

2436 printf("

%lld

",dp[n]);

37 }

view code

BZOJ 1010 玩具裝箱

預處理字首和su mi j 1i ai,為區間求和作準備。這顯然是dp。設f i 表示前 i 件玩具花的最小費用。則有 邊界條件 f0 0 動態轉移方程 fi min fj i j 1 s umi sumj l 2 答案 fn 直接求解,時間複雜度為o n2 顯然會tle。考慮斜率優化。原來的方程太...

BZOJ1010 玩具裝箱toy

1010 hnoi2008 玩具裝箱toy time limit 1 sec memory limit 162 mb submit 7631 solved 2924 description p教授要去看奧運,但是他捨不下他的玩具,於是他決定把所有的玩具運到北京。他使用自己的壓縮器進行壓縮,其可以將任...

BZOJ1010玩具裝箱Toy

p教授要去看奧運,但是他捨不下他的玩具,於是他決定把所有的玩具運到北京。他使用自己的壓縮器進行壓 縮,其可以將任意物品變成一堆,再放到一種特殊的一維容器中.p教授有編號為1.n的n 件玩具,第 i件玩具經過壓縮後變成一維長度為ci 為了方便整理,p教授要求在乙個一維容器中的玩具編號是連續的。同時如果...