国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

動態(tài)規(guī)劃——帶權(quán)二分優(yōu)化DP 學(xué)習(xí)筆記

這篇具有很好參考價值的文章主要介紹了動態(tài)規(guī)劃——帶權(quán)二分優(yōu)化DP 學(xué)習(xí)筆記。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

動態(tài)規(guī)劃——帶權(quán)二分優(yōu)化DP 學(xué)習(xí)筆記

引入

帶權(quán)二分其實(shí)并不一定用于優(yōu)化 DP,也可能用于優(yōu)化貪心等最優(yōu)化的算法。

帶權(quán)二分也叫 WQS 二分,最初由王欽石在他的 2012 年國家集訓(xùn)隊(duì)論文中提出。

定義

使用情況

  • 要解決一個最優(yōu)化問題(求最大 / 最小值)
  • 有一個限制,一般是某個參數(shù)要求一定恰好為 \(k\)

而帶權(quán)二分就可以很好的解決[恰好 \(k\)]的限制;以選物品取最大收益為例:

  • 設(shè) \(f(k)\) 為恰好選 \(k\) 個時的最大收益,將所有的 \((k, f(k))\) 畫出來,圖像必須組成一個凸包。
  • 因此就可以打表看,是否組成了一個凸包,如果是,則可以考慮帶權(quán)二分優(yōu)化。

使用方法

例:求 \(f(k)\) 的值,我們不會求 \(f(k)\) 或者其復(fù)雜度不可接受,但是我們可以求出所有 \(1\sim n\) 中的最優(yōu)解 \(f(t)\) 及對應(yīng)的 \(t\),因此我們就可以通過一些處理,將 \(f(k)\) 變?yōu)樽钚≈?,即將全局最?yōu)解變?yōu)?\(k\)。

什么方法?我們設(shè)一個額外的 \(w\),每次選一次物品以后就將結(jié)果加上 \(w\),也就是,我們設(shè)一個新的轉(zhuǎn)移方程 \(g_k=f_k+kw\)

注意:嚴(yán)謹(jǐn)?shù)?,是『選一次』,不是『選一個』。因?yàn)橛械念}目選一次對應(yīng)一段區(qū)間,即多個物品。

可以預(yù)見到的,原函數(shù)(左)會變?yōu)椋ㄓ遥?/p>

動態(tài)規(guī)劃——帶權(quán)二分優(yōu)化DP 學(xué)習(xí)筆記

要注意的是,\(w\) 也可能為負(fù);因此總會有一個 \(w\) 使得全局最優(yōu)解為 \(g(k)\),如下:

  • 可以想見,如果 \(w\) 繼續(xù)增大,那么最小值點(diǎn) \(x_0\) 會繼續(xù)變?。?/li>
  • 如果 \(w\) 減小以至于變成負(fù)數(shù),那么最小值點(diǎn) \(x_0\) 會不斷變大;

那么總會有一個 \(w\),使得最小值在 \(k\) 處取到,那不就可以二分了嘛。

我們二分一個值 \(w\)(邊界可以設(shè)置地大一些,當(dāng)然也可能得根據(jù)題目的數(shù)據(jù)范圍調(diào)一調(diào)),現(xiàn)在問題轉(zhuǎn)化為,求 \(g(x)\) 的最小值點(diǎn) \(x_0\)。

此時,不管用 DP 還是貪心啥的方法,求出 \(g(x)\) 的最小值 \(g(x_0)\),順便求出此時的最小值點(diǎn) \(x_0\)

  • \(x_0<k\),那就讓 \(w\) 變小點(diǎn);
  • \(x_0>k\),那就讓 \(w\) 變大點(diǎn)。

最終,我們就能讓 \(x_0=k\),也就是當(dāng)全局最優(yōu)解取到 \(g(k)\) 的時候,我們是不是就成功的求出了原問題 \(f(k) = g(k) - kw\) 呢?

警惕

既然是二分,就一定要仔細(xì)考慮 \(l,r,mid\) 的取值以及更新邊界的條件,總之,注意代碼細(xì)節(jié)!

應(yīng)用

例題講解

題目:P2619 Tree I

  • 畫出函數(shù)來:

動態(tài)規(guī)劃——帶權(quán)二分優(yōu)化DP 學(xué)習(xí)筆記

  • 凸函數(shù)好吧,所以給白邊加一個 \(w\) 的額外權(quán):
int l = -110, r = 110;
while (l <= r) {
    int mid = l + r >> 1; Kruskal(mid);
    if (now0 >= k) {
        ans = ansg - k * mid;
        r = mid + 1;
    } else r = mid - 1;
}
  • 此題完結(jié)。

題單

見:https://www.luogu.com.cn/training/393257

Reference

[1] https://www.mina.moe/archives/6349
[2] https://www.cnblogs.com/Dfkuaid-210/p/wqs_bisect.html
[3] https://blog.csdn.net/Emm_Titan/article/details/124035796
[4] https://blog.csdn.net/weixin_45429627/article/details/109270538
[5] https://blog.csdn.net/Huah_2018/article/details/113796445文章來源地址http://www.zghlxwxcb.cn/news/detail-711667.html

到了這里,關(guān)于動態(tài)規(guī)劃——帶權(quán)二分優(yōu)化DP 學(xué)習(xí)筆記的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 動態(tài)規(guī)劃——狀壓DP 學(xué)習(xí)筆記

    前置知識:位運(yùn)算 動態(tài)規(guī)劃的過程是隨著階段的增長,在每個狀態(tài)維度上不斷擴(kuò)展的。 在任意時刻,已經(jīng)求出最優(yōu)解的狀態(tài)與尚未求出最優(yōu)解的狀態(tài)在各維度上的分界點(diǎn)組成了 DP 擴(kuò)展的“輪廓”。對于某些問題,我們需要在動態(tài)規(guī)劃的“狀態(tài)”中記錄一個集合,保存這個“

    2024年02月08日
    瀏覽(25)
  • 動態(tài)規(guī)劃——樹形DP 學(xué)習(xí)筆記

    前置知識:樹基礎(chǔ)。 樹形 DP,即在樹上進(jìn)行的 DP,最常見的狀態(tài)表示為 (f_{u,cdots}) ,表示以 (u) 為根的子樹的某個東東。 本文將講解一些經(jīng)典題目(樹的子樹個數(shù)、樹的最大獨(dú)立集、樹的最小點(diǎn)覆蓋、樹的最小支配集、樹的直徑、樹的重心、樹的中心),以及一些常見形

    2024年02月08日
    瀏覽(22)
  • 動態(tài)規(guī)劃——數(shù)位DP 學(xué)習(xí)筆記

    引入 數(shù)位 DP 往往都是這樣的題型:給定一個區(qū)間 ([l, r]) ,求這個區(qū)間中滿足某種條件的數(shù)的總數(shù)。 簡單的暴力代碼如下: 而當(dāng)數(shù)據(jù)規(guī)模過大,暴力枚舉就 (mathbb T) 飛了,因此引入數(shù)位 DP: 概念 數(shù)位(digit):對于十進(jìn)制,即把一個數(shù)字按照個位、十位、百位等,一位

    2024年02月08日
    瀏覽(26)
  • AcWing算法學(xué)習(xí)筆記:動態(tài)規(guī)劃(背包 + 線性dp + 區(qū)間dp + 計(jì)數(shù)dp + 狀態(tài)壓縮dp + 樹形dp + 記憶化搜索)

    AcWing算法學(xué)習(xí)筆記:動態(tài)規(guī)劃(背包 + 線性dp + 區(qū)間dp + 計(jì)數(shù)dp + 狀態(tài)壓縮dp + 樹形dp + 記憶化搜索)

    算法 復(fù)雜度 時間復(fù)雜度0(nm) 空間復(fù)雜度0(nv) 代碼 算法 通過滾動數(shù)組對01背包樸素版進(jìn)行空間上的優(yōu)化 f[i] 與 f[i - 1]輪流交替 若體積從小到大進(jìn)行遍歷,當(dāng)更新f[i, j]時,f[i - 1, j - vi] 已經(jīng)在更新f[i, j - vi]時被更新了 因此體積需要從大到小進(jìn)行遍歷,當(dāng)更新f[i, j]時,f[i - 1,

    2024年02月21日
    瀏覽(21)
  • 15.動態(tài)規(guī)劃:數(shù)據(jù)結(jié)構(gòu)優(yōu)化DP

    數(shù)據(jù)結(jié)構(gòu)優(yōu)化DP有前綴和、滑動窗口、樹狀數(shù)組、線段樹、單調(diào)棧、單調(diào)隊(duì)列 中等 給你一個整數(shù)數(shù)組 nums ,找到其中最長嚴(yán)格遞增子序列的長度。 子序列 是由數(shù)組派生而來的序列,刪除(或不刪除)數(shù)組中的元素而不改變其余元素的順序。例如, [3,6,2,7] 是數(shù)組 [0,3,1,6,2,2

    2024年02月03日
    瀏覽(22)
  • 從01背包開始動態(tài)規(guī)劃:暴力解法 + dp + 滾動數(shù)組 + dp優(yōu)化

    從01背包開始動態(tài)規(guī)劃:暴力解法 + dp + 滾動數(shù)組 + dp優(yōu)化

    ? ? 01背包問題是動態(tài)規(guī)劃中最經(jīng)典的問題之一,本篇將通過給出其四種解法,使讀者更深刻理解動態(tài)規(guī)劃。 ? 有N件物品和一個容量是?V 的背包,每個物品有各自的體積和價值,且每個物品只能放一次(這也是01背包名字的由來),如何讓背包里裝入的物品具有最大的價值總

    2024年04月17日
    瀏覽(22)
  • 【優(yōu)化數(shù)學(xué)模型】2. 動態(tài)規(guī)劃DP方法的求解思路

    【優(yōu)化數(shù)學(xué)模型】2. 動態(tài)規(guī)劃DP方法的求解思路

    多階段決策問題,就是要在允許的決策范圍內(nèi),選擇一個最優(yōu)決策使整個系統(tǒng)在預(yù)定標(biāo)準(zhǔn)下達(dá)到最佳效果。 動態(tài)規(guī)劃 (dynamic programming,DP) 是用來解決多階段決策過程最優(yōu)化的一種數(shù)量方法。其特點(diǎn)在于,它可以把一個n維決策問題變換為幾個一維最優(yōu)化問題,從而一個一個地去

    2024年02月21日
    瀏覽(24)
  • 動態(tài)規(guī)劃(DP)(算法筆記)

    動態(tài)規(guī)劃(DP)(算法筆記)

    本文內(nèi)容基于《算法筆記》和官方配套練題網(wǎng)站“晴問算法”,是我作為小白的學(xué)習(xí)記錄,如有錯誤還請?bào)w諒,可以留下您的寶貴意見,不勝感激。 動態(tài)規(guī)劃(Dynamic Programming,DP)是一種用來解決一類最優(yōu)化問題的算法思想。簡單來說,動態(tài)規(guī)劃將一個復(fù)雜的問題分解成若干個子

    2024年02月05日
    瀏覽(20)
  • 【動態(tài)規(guī)劃 狀態(tài)機(jī)dp 性能優(yōu)化】3098. 求出所有子序列的能量和

    【動態(tài)規(guī)劃 狀態(tài)機(jī)dp 性能優(yōu)化】3098. 求出所有子序列的能量和

    動態(tài)規(guī)劃 狀態(tài)機(jī)dp 性能優(yōu)化 給你一個長度為 n 的整數(shù)數(shù)組 nums 和一個 正 整數(shù) k 。 一個子序列的 能量 定義為子序列中 任意 兩個元素的差值絕對值的 最小值 。 請你返回 nums 中長度 等于 k 的 所有 子序列的 能量和 。 由于答案可能會很大,將答案對 109 + 7 取余 后返回。 示

    2024年04月27日
    瀏覽(26)
  • 動態(tài)規(guī)劃算法刷題筆記【狀壓dp】

    動態(tài)規(guī)劃算法刷題筆記【狀壓dp】

    a1 == 1 判斷是否為奇數(shù),如果為1,則為奇數(shù) 因?yàn)槠鏀?shù)二進(jìn)制末位一定是1,所以 與1 得到的結(jié)果是1 這里,114——2 14 ——第15位是1,可以表示14個1 i(1j)—— 從0開始是因?yàn)椋镜?位就是1。所以j=0時,對應(yīng)的就是 i 的最低位 F l o y d Floyd Fl oy d 算法: n o w ∣ f l a g = = f l

    2024年02月11日
    瀏覽(27)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包