Dp優化 斜率優化

2021-10-02 06:36:50 字數 683 閱讀 4519

該模板的ai要具有單調性,也就是sum陣列(若沒有單調性,加個二分即可)

我的一篇題解,很詳細

1、寫出狀態轉移方程

2、按照斜率優化的式子推導出式子

3、代入模板即可。

#include

#include

using

namespace std;

typedef

long

long ll;

const

int maxn =

5e5+10;

ll a[maxn]

;ll sum[maxn]

;ll dp[maxn]

;ll que[maxn]

;ll get_up

(int u,

int v)

///y

ll get_down

(int u,

int v)

///x

intmain()

int l =

1, r =1;

for(

int i =

1; i <= n; i++

)printf

("%lld\n"

, dp[n]);

}return0;

}

一篇寫的很詳細很好的部落格

斜率優化 DP

我們知道,有些dp方程可以轉化成dp i f j x i 的形式,其中f j 中儲存了只與j相關的量。這樣的dp方程我們可以用單調佇列進行優化,從而使得o n 2 的複雜度降到o n 可是並不是所有的方程都可以轉化成上面的形式,舉個例子 dp i dp j x i x j x i x j 如果把右邊...

dp斜率優化

我們知道,有些dp方程可以轉化成dp i f j x i 的形式,其中f j 中儲存了只與j相關的量。這樣的dp方程我們可以用單調佇列進行優化,從而使得o n 2 的複雜度降到o n 可是並不是所有的方程都可以轉化成上面的形式,舉個例子 dp i dp j x i x j x i x j 如果把右邊...

斜率優化DP

斜率優化主要解決的是轉移方程中存在乙個同時與i和j有關的部分時的優化問題 dp i min dp j a i b j 0 include using namespace std typedef long long ll const int maxn 1e5 5 ll a maxn b maxn dp...