P6489用Dp我炸了
  • 板块学术版
  • 楼主Forever1507
  • 当前回复6
  • 已保存回复6
  • 发布时间2020/9/24 22:05
  • 上次更新2023/11/5 12:40:18
查看原帖
P6489用Dp我炸了
359614
Forever1507楼主2020/9/24 22:05
#include<bits/stdc++.h>
using namespace std;
int n,h[1005],dp[1005],way[1005],ed,now;
stack<int> stk;
int main(){
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>h[i];
		dp[i]=1;
	}
	int maxi=dp[1];
	for(int i=2;i<=n;i++){
		for(int j=1;j<i;j++){
			if(h[i]>h[j]){
			if(dp[j]+1>dp[i])
			{
				dp[i]=dp[j]+1;
				way[i]=j;
			}	
			}
		}
	}
	for(int i=1;i<=n;i++){
		if(dp[i]>maxi){
			maxi=dp[i];
			ed=i;
		} 
	}
	now=ed;
	stk.push(h[now]);
	while(way[now]>=1){
		now=way[now];
		stk.push(h[now]);
	}
	int minn,anss;
	minn=stk.top();
	while(stk.empty()==false){
		anss=stk.top();
		stk.pop();
	}
	if(anss-minn>0)
	cout<<anss-minn;
	else
	cout<<0;
	return 0;
}

求神犇帮帮蒟蒻的忙!!(话说“连续的高度严格递增”和普通的递增有什么区别??)

2020/9/24 22:05
加载中...