DP-Algo
This commit is contained in:
28
Algorithm/DP-DynamicProgramming/Linear-DP/B3637 最长上升子序列.cpp
Normal file
28
Algorithm/DP-DynamicProgramming/Linear-DP/B3637 最长上升子序列.cpp
Normal file
@@ -0,0 +1,28 @@
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
#include <algorithm>
|
||||
using namespace std;
|
||||
struct cmp{
|
||||
bool operator()(const pair<int, int>& a, const pair<int, int>& b){
|
||||
if(a.first != b.first) return a.first > b.first;
|
||||
return a.second < b.second;
|
||||
}
|
||||
};
|
||||
int main(){
|
||||
int n;
|
||||
cin >> n;
|
||||
vector<int> a(n);
|
||||
for(int i = 0; i < n; i++){
|
||||
cin >> a[i];
|
||||
}
|
||||
//dp[i]-><3E><><EFBFBD><EFBFBD>ǰi<C7B0><69><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EEB3A4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> pair(<28><><EFBFBD><EFBFBD>, <20><><EFBFBD><EFBFBD>ֵ)
|
||||
vector<int> dp(n, 1);
|
||||
for(int i = 0; i < n; i++){
|
||||
for(int j = 0; j < i; j++){
|
||||
if(a[i] > a[j]) dp[i] = max(dp[i], dp[j] + 1);
|
||||
}
|
||||
}
|
||||
int m = *max_element(dp.begin(), dp.end());
|
||||
cout << m << endl;
|
||||
return 0;
|
||||
}
|
||||
Reference in New Issue
Block a user