帶權二分 記錄一些帶權二分的一些題目

2022-09-10 00:12:45 字數 2054 閱讀 1845

rt

帶權二分主要是處理問題如在物品中選擇k個,或者分k組,這些問題都有乙個共性就是選得越多越好(滿足單調性質)。對於平常的處理方法我們都是利用dp處理,將選擇多少個作為一維度,但是在有些情況下,時空複雜度是容不下的。由於其具有單調性,那麼我們可以利用決策單調性(或者斜率優化),或者用同樣利用到單調性的二分來處理(有些時候要一起用到orz)。基本思想就是將原本越多越好的二分加上一些代價,使得並不能選得越多越好,而是在滿足dp下優先選出最好的一些,當二分達到某個值的時候,也就滿足了恰好k個或k組的限制條件。

bzoj2151種樹

題意:有n 2e5顆樹圍成一圈,選每顆樹有價值,不能選擇相鄰的兩棵樹,求恰好選m顆的價值

f[i][1/0][1/0]討論到第i個,第i個選了沒有,第乙個選了沒有。二分代價加到每顆樹的價值上,記得記錄下選了多少個。

6 3-1000 1000 -1000 -1000 1000 -1000

#include#include#include#include#include#includetypedef double db;

const int maxn = 200005;

struct oof[maxn][2][2];//前i個第i個選了沒第1個選了沒

bool operator<(const oo&x,const oo&y)

using namespace std;

int n,m,a[maxn];

int as;

bool dp(int ct) ; f[1][0][1] = f[1][1][0] = ;

for(int i=2;i<=n;i++)

oo ans = max(f[n][1][0],max(f[n][0][1],f[n][0][0]));

if(ans.x<=m)

return 0;

}int main()

if(n/2>1;

if(dp(mid)) r = mid-1;

else l = mid+1;

} printf("%d",as);

}

cf321e bzoj5311貞魚

題意:n個魚選k個區間,每個區間有乙個怨氣值,求一種分區間方案使得怨氣值總和最小。

帶權二分消除掉選多少個區間的條件之後f[x] = min: f[y] + val(y+1,x),那麼這個東西顯然滿足考慮決策單調性來搞,決策單調性就是dp決策點單調不減。

搞乙個二分單調佇列,滿足每個都管一段區間,且越隊尾越管後面,也就是維護乙個凸殼。感性理解就是再多加乙個東西使得答案變得更優速度更慢,對於本題就是乙個分組裡的魚變多使得答案更好的速度更慢,具體證明?orz orz  orz ,遇到寫個暴力dp看一下是不是決策單調就好,或者用用四邊形不等式orz.

#include#include#include#includeusing namespace std;

const int maxn = 4e3 + 5;

struct nodeqe[maxn];

int ql,qr;

int n,k;

int sm[maxn][maxn];

int g[maxn];

int val(int x,int y)

int f[maxn];

int calc(int x,int y)

int better(int x,int y,int k)

return ans;

}void solve(int ct) ;

for(int i=1;i<=n;i++) ;

else ;

}} }

}char buf[1<<20],*p1,*p2;

#define gc (p1==p2&&(p2=(p1=buf)+fread(buf,1,1<<20,stdin),p1==p2)?0:*p1++)

inline int r()

int main()

} int l = 0; int r = 5000 , mid,ans = 0;

while(l<=r)

solve(ans);

printf("%d",f[n]-k*ans);

}

DP凸優化 帶權二分

對於如要求選m mm個東西的最優化問題,f i f i f i 表示選了i ii個東西的答案,則dp的時間和空間複雜度必然都與m mm線性相關。但如果f i f i f i 關於i ii是乙個斜率單調不增的函式 凸函式 則可以使用dp凸優化將複雜度降為與log m log m logm 線性相關。考...

非常簡單地理解帶權二分(wqs二分)

非常感性簡單地理解帶權二分 又名 wqs 二分 儘管不是很嚴謹,如有錯誤請指出 large natural gosha is hunting 原題鏈結 更好閱讀體驗 設我們有 a 個紅球和 b 個藍球,用紅球抓 i 號胖可丁的概率是 a i 用藍球抓 i 號胖可丁的概率是 b i 首先我們有乙個暴力...

學習筆記 凸優化 WQS二分 帶權二分

從乙個題帶入 八省聯考2018 林克卡特樹lct wqs二分 比較詳細的 題解 p4383 八省聯考2018 林克卡特樹lct 簡單總結和補充 凸函式,限制 二分斜率,找切點橫縱座標,判斷k的位置 找切點座標 集體 mid x 證明還是凸函式 f x 2 f x 1 f x 1 f x 仍然成立 每...