區間dp:在區間上進行動態規劃,求解一段區間上的最優解。主要是通過合併小區間的 最優解進而得出整個大區間上最優解的dp演算法。
核心思路
思路:求解在乙個區間上的最優解,那麼把這個區間分割成乙個個小區間,求解每個小區間的最優解,再合併小區間得到大區間即可。所以可以列舉區間長度len 為每次分割成的小區間長度(由短到長不斷合併),內層列舉該長度下可以的起點。然後從這個起點到終點之間列舉分割點,求解這段小區間在某個分割點下的最優解。
int n,a[410],dp[410][410];
int main()
for(int len=2; len<=n; len++)//長度列舉}}
int ans=0;
for(int i=1;i<=n;i++)
printf("%d\n",ans);
}
洛谷 P1712 區間
在數軸上有 n個閉區間 l1,r1 l2,r2 ln,rn 現在要從中選出 m 個區間,使得這 m個區間共同包含至少乙個位置。換句話說,就是使得存在乙個 x,使得對於每乙個被選中的區間 li,ri 都有 li x ri。對於乙個合法的選取方案,它的花費為被選中的最長區間長度減去被選中的最短區間長度。...
洛谷 T150188 區間(貪心,dp)
首先可以dp做,把資料離散化後dp i 表示到i位置的最多區間數。把所有區間按照右端點排序從左往右排序,求dp i 就用右端點為i的區間更新答案。狀態轉移可以看 這種做法常數較大,我們還可以用貪心解此題。我們依舊按照右端點排序,從左往右列舉所有區間,如果當前區間與前面沒有重疊 即此區間的左端點在前面...
洛谷 P2434 SDOI2005 區間
現給定n個閉區間 ai,bi 1 i n。這些區間的並可以表示為一些不相交的閉區間的並。你的任務就是在這些表示方式中找出包含最少區間的方案。你的輸出應該按照區間的公升序排列。這裡如果說兩個區間 a,b 和 c,d 是按照公升序排列的,那麼我們有a b請寫乙個程式 讀入這些區間 計算滿足給定條件的不相...