四邊形不等式優化dp-簡介
d[i,j]=min{d[i,k-1]+d[k+1,j]}+w[i,j]
其中w[i,j]=sum[i,j]
四邊形不等式
w[a,c]+w[b,d]<=w[b,c]+w[a,d](a<b<c<d) 就稱其滿足凸四邊形不等式
決策單調性
w[i,j]<=w[i',j'] ([i,j]屬於[i',j']) 既 i'<=i<j<=j'
於是有以下三個定理
定理一: 如果w同時滿足四邊形不等式 和 決策單調性 ,則d也滿足四邊形不等式
定理二:當定理一的條件滿足時,讓d[i,j]取最小值的k為K[i,j],則K[i,j-1]<=K[i,j]<=K[i+1,j]
定理三:w為凸當且僅當w[i,j]+w[i+1,j+1]<=w[i+1,j]+w[i,j+1]
由定理三知 判斷w是否為凸即判斷 w[i,j+1]-w[i,j]的值隨著i的增加是否遞減
於是求K值的時候K[i,j]只和K[i+1,j] 和 K[i,j-1]有關,所以 可以以i-j遞增為順序遞推各個狀態值最終求得結果 將O(n^3)轉為O(n^2)
相關推薦
四邊形不等式優化dp-簡介
最有代價用d[i,j]表示 d[i,j]=min{d[i,k-1]+d[k+1,j]}+w[i,j] 其中w[i,j]=sum[i,j] 四邊形不等式 w[a,c]+w[b,d]<=w[b,c]+w[a,d](a<b<c<d)
POJ 1160 Post Office (四邊形不等式優化DP)
open memset cpp 。。 ios ems max while ctype 題意: 給出m個村莊及其距離,給出n個郵局,要求怎麽建n個郵局使代價最小。 析:一般的狀態方程很容易寫出,dp[i][j] = min{dp[i-1][k] + w[k+1][j]},表示
【轉】斜率優化DP和四邊形不等式優化DP整理
dex add ive mat 整理 off code 斜率dp 好的 當dp的狀態轉移方程dp[i]的狀態i需要從前面(0~i-1)個狀態找出最優子決策做轉移時 我們常常需要雙重循環 (一重循環跑狀態 i,一重循環跑 i 的所有子狀態)這樣的時間復雜度是O(N^2)而 斜
POJ1160 Post Office (四邊形不等式優化DP)
single inpu cst class pac ios 不等式 lang rep There is a straight highway with villages alongside the highway. The highway is represented as
四邊形不等式優化DP
pla mes npos 石子歸並 分享 max turn 四邊形 namespace 記錄一下,以免忘了 對於一個形如 \[dp[i][j]=min(dp[i][k]+dp[k][j]+w[i][j])\] 的轉移方程(註意取最大值時不一定滿足四邊形不等式) 定理1 若對
BZOJ1563/洛谷P1912 詩人小G 【四邊形不等式優化dp】
set har 方案 zoj #define 證明 isp 現在 fine 題目鏈接 洛谷P1912【原題,需輸出方案】 BZOJ1563【無SPJ,只需輸出結果】 題解 四邊形不等式 什麽是四邊形不等式? 一個定義域在整數上的函數\(val(i,j)\),滿足對\(\fo
郵局加強版:四邊形不等式優化DP
一個 ica 成了 除了 i+1 -a 都是 bit oid 題目描述 一些村莊建在一條筆直的高速公路邊上,我們用一條坐標軸來描述這條公路,每個村莊的坐標都是整數,沒有兩個村莊的坐標相同。兩個村莊的距離定義為坐標之差的絕對值。我們需要在某些村莊建立郵局。使每個村莊使用與它距
CodeForces - 321E:Ciel and Gondolas (四邊形不等式優化DP)
題意:N個人排成一行,分成K組,要求每組的不和諧值之和最小。 思路:開始以為是斜率優化DP,但是每個區間的值其實已經知道了,即是沒有和下標有關的未知數了,所以沒必要用斜率。 四邊形優化。 dp[i][j]表示前j個人分為i組的最小代價。 #include<bits/stdc++.h>
平行四邊形不等式優化DP——筆記
推很久推出方程後發現時間複雜度太大 TLE是不是很沮喪 優化方式及限定條件 來道例題 Post Office There is a straight highway with villages alongside the highway. The highway is r
平行四邊形不等式優化DP
一.前言 DP一直是程式設計中的一個難題,解決它不僅需要大量刷題,還需要學會各種DP的方法。這裡,我就主要講一個DP的優化方法:平行四邊形不等式優化DP動態規劃。(好難呀) 二.平行四邊形不等式是個啥? 1.題目引入:猴子派對 遠離我們的世界,
poj 1160 Post Office(四邊形不等式優化dp)
POJ_1160 我們可以用f[i][j]表示建好i個郵局時覆蓋到第j個村莊的最優解,那麼就可以得到f[i][j]=min{f[i-1][k]+w[k+1][j]}(k<j),其中w[x][y]表示建一個郵局覆蓋x到y的村莊的距離和,w[x][y]可以事先預
斜率優化DP和四邊形不等式優化DP整理
當dp的狀態轉移方程dp[i]的狀態i需要從前面(0~i-1)個狀態找出最優子決策做轉移時 我們常常需要雙重迴圈 (一重迴圈跑狀態 i,一重迴圈跑 i 的所有子狀態)這樣的時間複雜度是O(N^2)而 斜率優化或者四邊形不等式優化後的DP 可以將時間複雜度縮減到O(N) O(
HDU 2829 Lawrence(四邊形不等式優化DP)
題意:鐵路上有n個站點,每個站可以往其他站運送糧草,現在要炸掉m段鐵路(兩個站點之間為一段)使得糧草補給之和最小,剩餘每塊連通鐵路的糧草補給Strategic Value計算方法見題目,不再累贅。
區間dp 與 四邊形不等式優化 學習筆記
部落格目錄 很久之前在網上看了傳說中的四邊形不等式,然後現在發現忘光了。趁比賽前夕趕快拿來熟悉一下。 一、引入 形如: dp[i][j]=min{dp[i][k]+dp[k+1][j]+cost[i][j]} 的狀態轉移方程,如果不加優化的話ijk三層迴圈O(n
【總結】從詩人小G談DP的四邊形不等式優化
四邊形不等式 設w(x,y)w(x,y)w(x,y)是定義在整數集合上的二元函式。若對於定義域上的任何整數,a,b,c,d(a≤b≤c≤d)a,b,c,d(a\leq b\leq c\leq d)a
四邊形不等式(dp優化)應用及證明(石子合併n^2)
石子合併是一道很經典的區間動規。 在n^3的暴力裡面,我們的狀態轉移方程是: f[i][j]=min(f[i][j],f[i][k]+f[k+1][j]+w[i][j])f[i][j]=min(f[i][j],f[i][k]+f[k+1][j]+w[i]
藍橋杯 合併石子 DP+四邊形不等式優化
演算法提高 合併石子 時間限制:2.0s 記憶體限制:256.0MB 問題描述 在一條直線上有n堆石子,每堆有一定的數量,每次可以將兩堆相鄰的石子合併,合併後放在兩堆
[DP 四邊形不等式優化] 51Nod 1022 石子歸併 V2
蒟蒻不會四邊形不等式 形如 fi,j=min{fi,k+fk+1,j+wi,j}的方程 且滿足四邊形不等式和區間包含單調性 就可以用四邊形不等式優化 #include<cstdio> #
bzoj1563(dp,四邊形不等式優化)
Description Input Output 對於每組資料,若最小的不協排程不超過1018,則第一行一個數表示不協排程若最小的不協排程超過1018,則輸出”Too hard to arrange”(不包含引號)。每個輸
[dp專題-四邊形不等式優化]51nod 1022
1021石子歸併 V1N堆石子擺成一條線。現要將石子有次序地合併成一堆。規定每次只能選相鄰的2堆石子合併成新的一堆,並將新的一堆石子數記為該次合併的代價。計算將N堆石子合併成一堆的最小代價。 例如: 1 2 3 4,有不少合併方法 1 2 3 4 => 3 3 4(3)