BZOJ1010 玩具裝箱 DP決策單調性

2021-07-28 11:37:07 字數 592 閱讀 5836

題目這裡

首先可以得到方程:

f[i]=max

顯而易見該方程具有單調性,因此可以使用決策單調性優化,維護乙個下凸殼,每次將當前隊首決策取出直至當前決策為最優,然後將當前點加入隊尾,若有斜率小於當前點的則先取出後加入。

/*

user:small

language:c++

problem no.:1010

*/#include

#define ll long long

#define inf 999999999

#define pii pair

#define mp make_pair

using namespace std;

const int m=50005;

int n,l,a[m],c,q[m];

ll sum[m],f[m];

double slop(int j,int k)

void solve()

}int main()

solve();

cout0;}

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。考慮斜率優化。原來的方程太...

bzoj 1010 玩具裝箱

題目大意 有n個數,分成連續的若干段,每段 假設從第j個到第i個組成一段 的分數為 x l 2,x為j i sigma ck i k j,其中l是乙個常量 使各段分數的總和最小 思路 斜率優化dp入門題 寫出dp方程之後用單調佇列維護凸包即可 1 include2 include3 include4...

BZOJ1010 玩具裝箱toy

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