找到從上到下的最大路徑,每次有兩種情況,從左上將最大值傳下來,從右上將最大值傳下來。
f[i]
[j]=
max(f[i -1]
[j -1]
+ a[i]
[j], f[i -1]
[j]+ a[i]
[j])
;
for
(int i =
1; i <= n; i ++)}
#include
#define x first
#define y second
using
namespace std;
const
int n =
2e5+10;
//最長上公升子串行高階
int n;
int a[n]
;int q[n]
;int
main()
len =
max(len, r +1)
; q[r +1]
= a[i];}
cout << len << endl;
}
f[i]
[j]=
max(f[i -1]
[j], f[i]
[j -1]
);if(a[i]
== b[j]
) f[i]
[j]=
max(f[i -1]
[j -1]
+1, f[i]
[j])
;#include
#define x first
#define y second
using
namespace std;
const
int n =
2e3+10;
//給出兩個字串,把a轉換成b需要至少多少操作,有三個操作可以選擇,刪除乙個字母,增加乙個字母,改變乙個字母。
int n, m;
char a[n]
, b[n]
;int f[n]
[n];
intmain()
cout << f[n]
[m]<< endl;
}
動態規劃 線性DP
線性dp 即線性動態規劃,不侷限於 線性時間複雜度 的一維動態規劃。與數學中的 線性空間 類似,如果乙個動態規劃演算法的 狀態 包含多個維度,但在每個維度上都具有 線性 變化的 階段 那麼該動態規劃演算法同樣稱為 線性dp 在這類問題中,需要計算的物件表現出明顯的維度以及有序性,每個狀態的求解直接構...
數學規劃模型(二) 線性規劃模型
接上 數學規劃模型 一 線性規劃模型所解決的問題具有以下共同特徵 1 每個問題都可用一組決策變數 2 存在一定的限制條件 即約束條件 這些約束條件可用關於決策變數的一組線性等式或線性不等式來表示。3 有乙個目標要求 即目標函式 目標函式可表示為關於決策變數的線性函式。根據問題的需要,要求目標函式實現...
動態規劃 線性dp 初級
攔截飛彈 洛谷p1020 飛彈攔截 o n logn 的解法 dilworth定理 定理1 令 x,是乙個有限偏序集,並令r是其最大鏈的大小。則x可以被劃分成r個但不能再少的反鏈。其對偶定理稱為dilworth定理 定理2 令 x,是乙個有限偏序集,並令m是反鏈的最大的大小。則x可以被劃分成m個但不...