66pts大佬求调
查看原帖
66pts大佬求调
926251
TechGeek_Zhang楼主2025/6/26 18:37
#include<bits/stdc++.h>
#define please return
#define AC 0;
#define endl '\n'
using namespace std;
const int N=5e4+5;
int p[N],p1[N],n,a[N],b[N],l=1;
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	while(cin>>a[++n]){
	}
	n--;
//	for(int i=1;i<=n;i++)
//		cout<<a[i]<<" ";
//	cout<<endl;
	for(int i=1;i<=n;i++)
		b[i]=a[n+1-i];
//	for(int i=1;i<=n;i++)
//		cout<<b[i]<<" ";
//	cout<<endl;
	p1[1]=b[1];
	for(int i=2;i<=n;i++){
		if(b[i]>p1[l])
			p1[++l]=b[i];
		else
			p1[lower_bound(p1+1,p1+l+1,b[i])-p1]=b[i];
	}
	cout<<l<<endl;
	l=1;
	p[1]=a[1];
	for(int i=2;i<=n;i++){
		if(a[i]>p[l])
			p[++l]=a[i];
		else
			p[lower_bound(p+1,p+l+1,a[i])-p]=a[i];
	}
	cout<<l;
	please AC
}
2025/6/26 18:37
加载中...