很简单的动态规划
第一种所谓的人人为我,第二种我为人人
///
#include<iostream>
#include<algorithm>using namespace std;
const int MAXN = 1000;
int a[MAXN];
int result[MAXN];
int main(){
int n;
cin>>n;
for(int i = 1;i <= n;i++)
{ cin >> a[i];
result[i] = 1;
}
for(int i = 2;i <= n;i++)
{
for(int j = 1;j <= i - 1;j++)
if(a[i] > a[j])
result[i] = max(result[j]+1,result[i]);
}
cout << *max_element(result+1,result+1+n) << endl;
}
/
#include<iostream>
#include<algorithm>
using namespace std;
const int MAXN = 1000;
int a[MAXN];
int result[MAXN];
int main(){
int n;
cin>>n;
for(int i = 1;i <= n;i++)
{ cin >> a[i];
result[i] = 1;
}
for(int i = 1;i <= n;i++)
{
for(int j =i + 1;j <= n ;j++)
if(a[j] > a[i])
result[j] = max(result[i]+1,result[j]);
}
cout << *max_element(result+1,result+1+n) << endl;
}