LIS最長不下降子串行

2021-09-17 18:19:19 字數 427 閱讀 3375

在乙個序列中找到乙個最長的子串行(可以不連續)使得這個子串行不下降,即非遞減的。

核心部分找到狀態轉移方程:dp[i]=max(j=1,2,……i-1&&a[j]附上我的**

#include #include#includeusing namespace std;

const int maxn = 10010;

int dp[maxn];

int a[maxn];

int main()

int ans = -1;//用來記錄最大的dp[i]

for (int i = 1; i < n; i++)

}ans = max(ans, dp[i]);

} printf("%d\n", ans);

}

仔細想想蠻容易的嘻嘻加油come on

最長不下降子串行LIS

最長上公升子串行問題是解決很多問題的根本,它能幫助你理解二分的思想。考慮一下 對於乙個序列 n nn 請你查詢n nn中最長的子串行a aa,使得任意 i i j 時 a i a i a i a i a i a i 例如乙個長度為5 55的n nn 5553 331112 22444 顯然,它的最長...

最長不下降子串行 (LIS)

最長不下降子串行是這樣乙個問題 在乙個數字序列中,找到乙個最長的子串行 可以不連續 使得這個子串行是不下降 非遞減 的。令dp i 表示以a i 結尾的最長不下降子串行的長度,這樣對a i 來說就會有兩種情況。1 如果存在a i 之前的元素a j jdp i 2 它前面的元素均比它大,則dp i 1...

最長不下降子串行LIS

lis 題解 最長不下降子串行,英文縮寫為 lis longest increasing subsequence 其 定義是,設有由 n 個不相同的整數組成的數列,記為 a 1 a 2 a n 且 a i a j i j 例如 3,18,7,14,10,12,23,41,16,24。若存在 i1h ...