題目這裡
首先可以得到方程:
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教授要去看奧運,但是他捨不下他的玩具,於是他決定把所有的玩具運到北京。他使用自己的壓縮器進行壓縮,其可以將任...