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;cf321e bzoj5311貞魚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);
}
題意: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 仍然成立 每...