【鏈結】
鏈結【題意】
在這裡輸入題意
【題解】
模擬一下樣例。
會發現。切的順序不影響最後的答案。
只要切點確定了。
答案就確定了。
則設f[i][j]表示前i段,第i段保留到j的最大值。
\(f[i][j] = max(f[i-1][x] + (s[j]-s[x])*(s[n]-s[j]))\)
\(s[i] = a[1] + a[2] +...+a[i]\)
然後還是考慮x < y 且y優於x
balabala最後能得到
\(\frac>s[n]-s[j]\)
而s[n]-s[j]是單調遞減的;
這就能加乙個斜率優化了。
注意這裡是》s[n]-s[j]才y更優。
則佇列的出入隊和經典的斜率優化條件相反。
最後輸出f[k+1][n]就好;
要用滾動陣列。不然會mle.
【錯的次數】
在這裡輸入錯的次數
【反思】
在這裡輸入反思
【**】
#include #define ll long long
using namespace std;
const int n = 1e5,k = 200;
int n,k,h,t,dl[n+10];
ll a[n+10],f[2][n+10],s[n+10];
double ju(int i,int x,int y)
int main()
}printf("%lld\n",f[(k+1)&1][n]);
return 0;
}
bzoj3675 APIO2014 序列分割
time limit 40 sec memory limit 128 mb submit 1468 solved 607 submit status discuss 小h最近迷上了乙個分隔序列的遊戲。在這個遊戲裡,小h需要將乙個長度為n的非負整數序列分割成k 1個非空的子串行。為了得到k 1個子序列...
BZOJ3675 Apio2014 序列分割
portal 根據乘法分配律,其實最後答案就是分割後,對每個塊的和,兩兩求乘積加和。那麼割的順序就沒有影響了。遞推式可以寫成 f i k mi n f j k 1 sum i sum j sum j 那麼對於k j且決策k優於決策j f k l 1 sum i sum k sum k f j l 1...
BZOJ 3675 Apio2014 序列分割
bzoj 3675 apio2014 序列分割 小h最近迷上了乙個分隔序列的遊戲。在這個遊戲裡,小h需要將乙個長度為n的非負整數序列分割成k 1個非空的子串行。為了得到k 1個子序列,小h需要重複k次以下的步驟 1.小h首先選擇乙個長度超過1的序列 一開始小h只有乙個長度為n的序列 也就是一開始得到...