算出来的ans为什么要-1
查看原帖
算出来的ans为什么要-1
560340
SubHaber楼主2023/7/20 11:08
#include<bits/stdc++.h>
using namespace std;
const int N=1e5+5;;
int low[N];
int n,a[N],ans; 
int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	while(cin>>a[++n]&&a[n]!=EOF);
	
	low[1]=a[1],ans=1;
	for(int i=2;i<=n;i++){
		if(a[i]<=low[ans]) low[++ans]=a[i];
		else low[upper_bound(low+1,low+1+ans,a[i],greater<int>())-low]=a[i];
	}
	printf("%d\n",ans-1);	//Here
	
	low[1]=a[1],ans=1;
	for(int i=2;i<=n;i++){
		if(a[i]>low[ans]) low[++ans]=a[i];
		else low[lower_bound(low+1,low+1+ans,a[i])-low]=a[i];
	}
	printf("%d\n",ans);
	return 0;
}

我不李姐,ans 不 -1 就过不了,下面的 ans 不 -1 就过了。

2023/7/20 11:08
加载中...