求助站外题
  • 板块题目总版
  • 楼主_k_e_v_i_n_
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/6/16 22:35
  • 上次更新2023/10/27 23:11:41
查看原帖
求助站外题
431956
_k_e_v_i_n_楼主2022/6/16 22:35

一本通 1283:登山

Code:

#include<bits/stdc++.h>
using namespace std;
int n,a[1001],dp[1001],ans,dp2[1001];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a[i];
	}
	dp[n]=1;
	for(int i=n-1;i>=1;i--){
		for(int j=i+1;j<=n;j++){
			if(dp[j]>dp[i]&&a[i]<a[j]){
				dp[i]=dp[j];
			}
		}
		dp[i]++;
	}
	dp2[n]=1;
	for(int i=n-1;i>=1;i--){
		for(int j=i+1;j<=n;j++){
			if(dp2[j]>dp2[i]&&a[i]>a[j]){
				dp2[i]=dp2[j];
			}
		}
		dp2[i]++;
	}
	for(int i=1;i<=n;i++)	ans=max(ans,max(dp[i],dp2[i]));
	cout<<ans;
	return 0;
}

WA 0 分

2022/6/16 22:35
加载中...