求助P1020
  • 板块灌水区
  • 楼主oier25
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/8/25 16:39
  • 上次更新2023/11/3 01:16:20
查看原帖
求助P1020
719233
oier25楼主2023/8/25 16:39
#include<bits/stdc++.h>
using namespace std;
int a[114514],dp[114514],n,len=1,len2=1,x;
bool cmp(int a,int b){
	return a>b;
}
int main(){
	while(cin>>x)a[++n]=x;
	dp[1]=a[1];
	for(int i=2;i<=n;i++){
		if(dp[len]>=a[i])dp[++len]=a[i];
		else dp[upper_bound(dp+1,dp+len+1,a[i],cmp)-dp]=a[i];
	}
	for(int i=2;i<=n;i++){
		if(dp[len2]<a[i])dp[++len2]=a[i];
		else dp[lower_bound(dp+1,dp+len2+1,a[i])-dp]=a[i];
	}
	cout<<len<<"\n"<<len2;
	return 0;
}

读入

5 6 8 7 41 6 5 55 5 5 5 5

正确输出

8
5

我的输出

8
4
2023/8/25 16:39
加载中...