日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

四边形不等式

發布時間:2023/12/3 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 四边形不等式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

四邊形不等式

優化一種動態規劃遞推式:

  • fi=min0≤j<i{fj+w(j+1,i)}f_i=min_{0\le j\lt i}\{f_j+w(j+1,i)\}fi?=min0j<i?{fj?+w(j+1,i)} 典型題目:序列劃分
  • fi,j=mini≤k<j{fi,k+fk+1,j+w(i,j)}f_{i,j}=min_{i\le k \lt j}\{f_{i,k}+f_{k+1,j}+w(i,j)\}fi,j?=minik<j?{fi,k?+fk+1,j?+w(i,j)} 典型題目:石子合并
  • 必須滿足的條件:

    a. w(i,j)w(i,j)w(i,j)滿足區間包含單調性
    b. w(i,i)=0w(i,i)=0w(i,i)=0
    c. w(i,j)w(i,j)w(i,j)滿足四邊形不等式,即對于x≤x′<y≤y′x \le x' \lt y \le y'xx<yy,有w(x,y)+w(x′,y′)≤w(x,y′),+w(x′,y)w(x,y) + w(x',y') \le w(x,y'),+w(x',y)w(x,y)+w(x,y)w(x,y),+w(x,y)

    決策單調性證明

    1維遞推式決策單調性證明

    對于式子111,假設kkkfif_ifi?的最優決策點,假設i′>i,k′<ki'>i,k'<ki>i,k<k,那么對于fi′f_{i'}fi?來說,在kkk點決策優于在k′k'k點決策。

  • 首先有1式:fi=fk+w(k+1,i)<fk′+w(k′+1,i)f_i=f_k+w(k+1,i) < f_{k'}+w(k'+1,i)fi?=fk?+w(k+1,i)<fk?+w(k+1,i)
  • 取點k′+1<k+1<i<i′k'+1 \lt k+1 \lt i \lt i'k+1<k+1<i<i,根據四邊形不等式得2式:w(k′+1,i)+w(k+1,i′)<w(k′+1,i′)+w(k+1,i)w(k'+1,i)+w(k+1,i') \lt w(k'+1,i') + w(k+1,i)w(k+1,i)+w(k+1,i)<w(k+1,i)+w(k+1,i)
  • 1式 + 2式可得3式:fk+w(k+1,i′)<fk′+w(k′+1,i′)f_k+w(k+1,i') \lt f_{k'} + w(k'+1,i')fk?+w(k+1,i)<fk?+w(k+1,i)
    根據3式,顯然決策單調性滿足。
  • 2維遞推式決策單調性證明

    對于式子222,假設p(i,j)p(i,j)p(i,j)fi,jf_{i,j}fi,j?的最優決策點,那么證明決策單調性即等價于證明p(i,j?1)≤p(i,j)≤p(i+1,j)p(i,j-1) \le p(i,j) \le p(i+1,j)p(i,j?1)p(i,j)p(i+1,j)
    先證明p(i,j?1)≤p(i,j)p(i,j-1) \le p(i,j)p(i,j?1)p(i,j),右邊同理。
    證明方法:設是p(i,j?1)=k,k′<kp(i,j-1)=k,k' \lt kp(i,j?1)=k,k<k

  • kkk的最優性,得到1式fi,j?1=fi,k+fk+1,j?1+w(i,j?1)<fi,k′+fk′+1,j?1+w(i,j?1)f_{i,j-1}=f_{i,k} + f_{k+1,j-1}+w(i,j-1) \lt f_{i,k'} + f_{k'+1,j-1}+w(i,j-1)fi,j?1?=fi,k?+fk+1,j?1?+w(i,j?1)<fi,k?+fk+1,j?1?+w(i,j?1)
  • 由于www滿足四邊形不等式,其實fff也滿足四邊形不等式,取k′+1<k+1<j?1<jk'+1 \lt k+1 \lt j-1 \lt jk+1<k+1<j?1<j,由遞變形不等式可得:fk′+1,j?1+fk+1,j<fk′+1,j+fk+1,j?1f_{k'+1,j-1}+f_{k+1,j} \lt f_{k'+1,j}+f_{k+1,j-1}fk+1,j?1?+fk+1,j?<fk+1,j?+fk+1,j?1?。
  • 1式+2式可得:fi,k+fk+1,j+w(i,j)<fi,k′+fk′+1,j+w(i,j)f_{i,k}+f_{k+1,j}+w(i,j) \lt f_{i,k'}+f_{k'+1,j}+w(i,j)fi,k?+fk+1,j?+w(i,j)<fi,k?+fk+1,j?+w(i,j)。
    顯然,對于fi,jf_{i,j}fi,j?來說,決策點kkk要比k′k'k好,證明完畢。
  • 于是石子合并的代碼可以寫成:

    for(int i = 1;i <= n;++i) {dp[i][i] = 0;dp[i][i+1] = a[i] + a[i+1];p[i][i+1] = i; } for(int len = 3;len <= n;++len) for(int i = 1;i <= n;++i) {int j = i + len - 1;if(j > n) break;for(int k = p[i][j-1],k <= p[i+1][j];++k) {int X = dp[i][k] + dp[k+1][j];if(X < dp[i][j]){dp[i][j] = X;p[i][j] = k;}}} }

    例題

    http://poj.org/problem?id=1160

    題目大意

    給出VVV個村莊的橫坐標,從中選出PPP個安放郵局,使得所有村莊去郵局距離之和最小。

    解:

    當只安放一個郵局時候,顯然只需選在中間點即可。
    w(i,j)w(i,j)w(i,j)表示把[i,j][i,j][i,j]區間內的村莊安置一個郵局,其最小距離和。
    容易發現,w(i,j)w(i,j)w(i,j)可以用動態規劃來求解,時間復雜度O(n2)O(n^2)O(n2)w(i,j)=w(i,j?1)+(x[j+1]?x[y+1+x2])w(i,j)=w(i,j-1)+(x[j+1]-x[\frac{y+1+x}{2}])w(i,j)=w(i,j?1)+(x[j+1]?x[2y+1+x?]),發現w(i,j)w(i,j)w(i,j)滿足四邊形不等式等3個條件。

    fi,jf_{i,j}fi,j?表示在前iii個村莊安放jjj個郵局,距離之和的最小值。
    類似于序列化分問題,我們可以找到轉移方程:
    fi,j=min(fk,j?1+w(k+1,i))f_{i,j}=min(f_{k,j-1}+w(k+1,i))fi,j?=min(fk,j?1?+w(k+1,i)),根據1維線性遞推式的決策單調性證明方法,可以知道這個式子也可以使用四邊形進行優化。

    總結

    以上是生活随笔為你收集整理的四边形不等式的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。