lzj1224 @ 2024-08-16 08:08:15
#include <iostream>
#include <stdlib.h>
using namespace std;
int n,a[114514],b[114514],maxl;
void f1(){
int i,j,k;
for(i=0;i<n;i++){
k=0;
b[k]=a[i];
k++;
for(j=i+1;j<n;j++){
if(a[j]>b[k-1]){
b[k]=a[j];
k++;
}
}
if(k>maxl) maxl=k;
for(j=0;j<5001;j++) b[j]=0;
}
cout<<maxl;
}
int main(){
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
f1();
}
by lzj1224 @ 2024-08-16 08:08:56
40分
by 1984a @ 2024-08-16 10:25:36
#include<bits/stdc++.h>
using namespace std;
int a[100005], d[10005];
int n;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
int ans=1;
for (int i=1;i<=n;i++){
d[i]=1;
for(int j=1;j<i;j++)
if (a[j]<=a[i]){
d[i]=max(d[i],d[j]+1);
ans=max(ans,d[i]);
}
}
cout<<ans<<endl;
}
@lzj1224 完美代码
by zldx @ 2024-08-20 14:50:32
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef vector<ll> v;
int main(){
ll n;
cin>>n;
v ve1;
v ve2(n,1);
for(int i=0;i<n;i++){
int z;
cin>>z;
ve1.push_back(z);
}
ve2[0]=1;
for(int i=1;i<n;i++){
for(int j=0;j<i;j++){
if(ve1[j]<ve1[i]){
ve2[i]=max(ve2[i],ve2[j]+1);
}
}
}
ll sum=0;
for(int i=0;i<n;i++){
sum=max(sum,ve2[i]);
}
cout<<sum;
return 0;
}