<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      決策單調性優化 DP

      前言

      本文將介紹決策單調性優化 DP 的相關內容。持續更新修正,如有差錯請指出。

      1.四邊形不等式優化 DP

      1.1 四邊形不等式與決策單調性

      • 四邊形不等式:如果對于任意的 \(a \le b \le c \le d\) 均成立

      \[w(a,d) + w(b,c) \ge w(a,c) + w(b,d) \]

      則稱代價函數 \(w\) 滿足四邊形不等式。觀察上述形式,即包含劣于相交,注意這是當我們要求代價函數 \(w\) 最小時四邊形不等式的符號,如果我們要求 \(w\) 最大,相當于對其取相反數,那么相應的,此時的四邊形不等式需要變號。
      四邊形不等式優化利用的是狀態轉移方程中的決策單調性,通常用于解決一系列的最優化問題。
      在解決動態規劃相關問題的時候,通常會遇到以下這種形式

      \[f_i = \min\limits_{j < i} \{ f_j + w(j,i)\} \]

      其中 \(\min\) 也可能是 \(\max\)。一般情形下,這類問題解決的時間復雜度為 \(\mathcal{O(n^2)}\),如果 \(f\) 具有決策單調性,那么就可以將時間復雜度優化至 \(\mathcal{O(n\log n)}\) 甚至 \(\mathcal{O(n)}\)

      • 決策單調性:設 \(p_i\) 表示 \(f_i\) 取到最小值時 \(j\) 的值(如果有多個 \(j\) 滿足則取最小),即 \(f_i\) 的最優決策點。當代價函數 \(w\) 滿足四邊形不等式時,\(p_i\)\([1,n]\) 上單調不降,\(f\) 具有決策單調性。則我們有

      \[\forall i \in [1,n],j \in [0,p_i),f_{p_i} + w(p_i,i) \le f_j + w(j,i) \]

      要證明這一點,可以使用反證法。假設對于 \(f_i,f_j(i < j)\),其最優決策點 \(p_j < p_i\),此時 \(p_j < p_i < i < j\),據四邊形不等式有 $$w(p_j,j) + w(p_i,i) \ge w(p_j,i) + w(p_i,j)$$但是根據決策點的最優化條件又有 \(w(p_i,i) \le w(p_j,i),w(p_j,j) \le w(p_i,i)\),即 $$w(p_j,j) + w(p_i,i) \le w(p_j,i) + w(p_i,j)$$與四邊形不等式矛盾。
      由此得證。

      對于 \(f_i\),其具有最小/最大最優決策點,將上述對 \(p_i\) 的定義更換為取最大后,關于原 \(p_i\) 的所有結論都是同樣成立的,最大最優決策點同樣具有單調不降的性質。注意可能存在 \(i < i'\),但是 \(i'\) 的最大最優決策點小于 \(i'\) 的最小最優決策點,故一般題目當中我們都默認只取最小(大)最優決策點來轉移。

      1.2 解題套路

      通常我們先寫出 \(f_i\) 的轉移式子,大多數情況下,通常使用

      \[w(j,i + 1) + w(j + 1,i) \ge w(j,i) + w(j + 1,i + 1) \]

      來檢驗代價函數是否滿足四邊形不等式。

      然后對于一個決策,取它作為最優決策點的 \(f_i\) 所組成的是一個區間。對于決策 \(p_i < p_{i'}\),則這兩種決策能成為最優決策的區間 \([l_{p_i},r_{p_i}],[l_{p_{i'}},r_{p_{i'}}]\),有 \(r_{p_i} < l_{p_{i'}}\)。

      我們寫一個二分函數 \(check(j,i)\) 計算出第一個以 \(j\) 作為最優決策不如以 \(i\) 作為最優決策優秀的點,那么可以使用單調隊列來維護最優決策點,并進行 DP 轉移了。

      2.斜率優化 DP

      給出例題。

      • P3195 玩具裝箱

      對于 \([l,r]\) ,其代價為 \((r - l + \sum_{i = l}^r c_i - L)^2\)。

      首先對 \(c_i\) 做前綴和。考慮暴力,對于每個 \(i\) 去枚舉 \(j\),則有

      \[dp_i = min\{dp_j + (i - j - 1 + c_i - c_j - L)^2\} \]

      rep(i,1,n) {
          dp[i] = inff;
          rep1(j,i - 1,0)
              chmin(dp[i],dp[j] + (i - j - 1 + c[i] - c[j] - L) * (i - j - 1 + c[i] - c[j] - L));
      }
      

      現在進行優化,把上述式子變形,把 \(1\) 放入 \(L\) 中,\(i,j\) 分別放入 \(c_i,c_j\) 中,有 \((c_i - c_j - L)^2\),把式子里的“常量”提出來展開,變為

      \[dp_i - (c_i - L)^2 =dp_j - 2 \times (c_i - L) \times c_j + c_j^2 \]

      接下來考慮進行斜率優化,對于一個一次函數 \(y = kx + b\),通常推式子時有以下操作:

      1. 把要求最小值的式子作為截距,即 \(b = dp_i - (c_i - L)^2\)
      2. 把另一邊的式子變為 \(y - kx\) 的形式,其中 \(y\) 只與 \(j\) 有關,\(kx\) 同時與 \(i,j\) 有關

      \[y = dp_j + c_j^2\\ k = 2(c_i - L)\\ x = c_j\\ b = dp_i - (c_i - L)^2 \]

      顯然,\(b_i\) 取到最小值的點在這個下凸殼上,因為這個斜率是單調的,可以考慮用單調隊列來維護,此時 \(\text{slope}(q_{i - 1},q_i) < \text{slope}(q_{i},q_{i +1})\)

      那么當 \(\text{slope}(q_{i - 1},q_i) \leq k < \text{slope}(q_i,q_{i + 1})\),\(b\)\(q_i\) 上取得最小值。

      代碼就很好寫了。

      il db slope(int i,int j) {
          return (db)(y[i] - y[j]) * 1.0 / (db)(x[i] - x[j]);
      }
      
      il void solve() {
          //------------code------------
          read(n,L); 
          ++ L;
          rep(i,1,n) read(c[i]),c[i] += c[i - 1];
          rep(i,1,n) c[i] += i;
          rep(i,1,n) {
              int k = 2ll * (c[i] - L);
              while (hh <= tt && slope(q[hh - 1],q[hh]) <= k * 1.0) ++ hh;
              dp[i] = y[q[hh - 1]] - k * x[q[hh - 1]] + (c[i] - L) * (c[i] - L);
              x[i] = c[i],y[i] = dp[i] + c[i] * c[i];
              while (hh <= tt && slope(q[tt - 1],q[tt]) >= slope(q[tt],i)) -- tt;
              q[++ tt] = i;
          }
          write(dp[n],'\n');
          return ;
      }
      
      posted @ 2024-10-31 17:45  songszh  閱讀(57)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国色精品卡一卡2卡3卡4卡在线| 革吉县| 亚洲精品码中文在线观看| 日本夜爽爽一区二区三区| 亚洲国产精品热久久一区| 婷婷久久香蕉五月综合加勒比| 国产老妇伦国产熟女老妇高清| 人妻激情另类乱人伦人妻| 亚洲在战av极品无码| 精品精品亚洲高清a毛片| 亚洲丶国产丶欧美一区二区三区| 一本高清码二区三区不卡| 国产精品一区在线蜜臀| 亚洲av午夜福利大精品| 一二三四中文字幕日韩乱码| 久久久国产成人一区二区| 最近2019中文字幕免费看| 毛葺葺老太做受视频| 中文字幕无码乱码人妻系列蜜桃| 亚洲精品动漫一区二区三| 国产福利高颜值在线观看| 久热伊人精品国产中文| 四虎影视www在线播放| 成人国产精品一区二区网站公司| 亚洲国产在一区二区三区| 国产精品日韩中文字幕熟女| 亚洲熟妇无码爱v在线观看 | 波多野结衣的av一区二区三区| 日韩午夜福利片段在线观看| 国产精品毛片一区二区 | 国产超碰无码最新上传| 丰满岳乱妇久久久| 五月婷之久久综合丝袜美腿 | 四虎永久在线精品免费看| 日本午夜精品一区二区三区电影| 国产欧美一区二区精品久久久| 天堂网av最新版在线看| 亚洲欧美人成电影在线观看| 开心久久综合激情五月天| 成人av亚洲男人色丁香| 91在线国内在线播放老师|