为嘛要减1 :(
查看原帖
为嘛要减1 :(
766436
Mr_RedStone楼主2024/3/23 09:12
#include<bits/stdc++.h>
using namespace std;
int n;
int a[100005];
int f[100005];
int main(){
//	scanf("%d",&n);
//	for(int i=1;i<=n;i++){
//		scanf("%d",&a[i]);
//	}
	while(cin>>a[++n]){
		
	}
	int l=0;
	for(int i=n;i>=1;i--){
		int pos=upper_bound(f+1,f+l+1,a[i])-f;
		f[pos]=a[i];
		l=max(l,pos);
	}
	printf("%d\n",l-1);
	l=0;
	memset(f,0,sizeof(f));
	for(int i=1;i<=n;i++){
		int pos=lower_bound(f+1,f+l+1,a[i])-f;
		f[pos]=a[i];
		l=max(l,pos);
	}
	printf("%d",l); 
	return 0;
}

详见第20行,不减一就过不了 :(

为什么啊 QWQQWQ

2024/3/23 09:12
加载中...