斜率優化的題好像都是這樣的方程:左邊關於j,k的乙個(...)/(...)的式子,右邊是個只與i有關的可算的數字;
然後把它放到二維座標軸上,用單調佇列維護乙個凸殼,o(n)的複雜度;
這道題但是我發現我wrong了,找了程式看了一下,才發現斜率優化還有一點沒理解;才明白上午t2能a是由於資料太水,出題人萬歲!
1 #include2 #include3view codeusing
namespace
std;
4#define ll long long
5const
int maxn=50500
;6 ll n,l,a[maxn],g[maxn],q[maxn],tail=0,head=1
,f[maxn];
7void
init()15}
16double
p(ll k,ll j)
19 ll squ(ll x)
20void
work()
30 cout
32int
main()
BZOJ1010 玩具裝箱toy(斜率優化)
p教授要去看奧運,但是他捨不下他的玩具,於是他決定把所有的玩具運到北京。他使用自己的壓縮器進行壓縮,其可以將任意物品變成一堆,再放到一種特殊的一維容器中。p教授有編號為1.n的n件玩具,第i件玩具經過壓縮後變成一維長度為ci.為了方便整理,p教授要求在乙個一維容器中的玩具編號是連續的。同時如果乙個一...
BZOJ 1010 玩具裝箱toy (斜率優化)
題目大意 將n個數分成若干組,並且每組的數在原陣列中應是連續的,每組會產生的代價為sum i sum j i j 1 m,m為已知的常數。求最小代價。題目分析 定義dp i 表示將前 i 個元素分好組後產生的最小代價,狀態轉移方程很顯然了 dp i min dp j sum i sum j i j ...
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。考慮斜率優化。原來的方程太...