ammdyc @ 2023-07-30 11:42:55
#include<bits/stdc++.h>
using namespace std;
int n,a[1010],f[1010],c[1010];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
f[n]=1;
for(int i=n-1;i>=1;i--){
int maxx=0,k=0;
for(int j=i+1;j<=n;j++){
if(a[i]<=a[j]&&maxx<f[j]){
maxx=f[j];
k=j;
}
}
c[i]=k;
f[i]=1+maxx;
}
int ans=0,s=0;
for(int i=1;i<=n;i++){
if(ans<f[i]){
ans=f[i];
s=i;
}
}
cout<<ans<<endl;
return 0;
}
by KidzzZip @ 2023-07-30 11:43:55
数组开小了,看题目给出的数据范围。
by ammdyc @ 2023-07-30 11:44:35
删了一些不重要的东西
#include<bits/stdc++.h>
using namespace std;
int n,a[1010],f[1010];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
f[n]=1;
for(int i=n-1;i>=1;i--){
int maxx=0,k=0;
for(int j=i+1;j<=n;j++){
if(a[i]<=a[j]&&maxx<f[j]){
maxx=f[j];
}
}
f[i]=1+maxx;
}
int ans=0;
for(int i=1;i<=n;i++){
if(ans<f[i]){
ans=f[i];
}
}
cout<<ans<<endl;
return 0;
}
by ammdyc @ 2023-07-30 11:45:53
@KidzzZip 谢谢