求最长不下降序列
  • 板块灌水区
  • 楼主AnOIer
  • 当前回复3
  • 已保存回复3
  • 发布时间2024/5/8 14:40
  • 上次更新2024/5/8 18:30:14
查看原帖
求最长不下降序列
1036897
AnOIer楼主2024/5/8 14:40

题目

代码

#include<bits/stdc++.h>
using namespace std;
int a[1000];
int dp[1000];
int ans[1000];
int maxn=-1e9,t,l;
int main(){
	int n;
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i];
	for(int i=1;i<=n;i++){
		for(int j=0;j<i;j++){
			if(a[i]>=a[j]){
				dp[i]=max(dp[i],dp[j]+1);
				maxn=max(dp[i],maxn);
				if(maxn==dp[i]) t=i;
			}
		}
	}
	cout<<"max="<<maxn;
	int k=a[t];
	cout<<endl;
	for(int i=t;i>=1;i--){
		if(k>=a[i]) {
			ans[l]=a[i];
			++l;
			k=a[i];
		}
	}
	for(int i=l-1;i>=0;i--) cout<<ans[i]<<" ";
	return 0;
}

60分求助!

2024/5/8 14:40
加载中...