【NOJ1540】【動態規劃_DP】最長遞增子序列的長度
阿新 • • 發佈:2018-11-23
1540.最長遞增子序列的長度
時限:1000ms 記憶體限制:10000K 總時限:3000ms
描述
給定一個序列,求它的最長遞增子序列的長度
輸入
先輸入一個正整數n,表示序列的長度,再輸入n個整數表示這個序列
輸出
輸出它的最長遞增子序列的長度
#include <iostream> using namespace std; int n; int a[10001]; int maxn; int memo[10001]; int dp(int m); int main() { cin>>n; for(int i=0; i<n; i++) { cin>>a[i]; } cout<<dp(0)<<endl; return 0; } int dp(int m) { maxn=1; for(int i=0; i<n; i++) { memo[i]=1; for(int j=0; j<i; j++) { if(a[j]<a[i]) { memo[i]=max(memo[i], memo[j]+1); } } maxn=max(maxn, memo[i]); } return maxn; }
【2018/11/20後記】
1、本題和【防衛導彈】一模一樣,只不過把【非遞增】改成了【遞增】而已。