这题用lower_bound和upper_bound的区别在哪
  • 板块学术版
  • 楼主lsuntouched
  • 当前回复6
  • 已保存回复7
  • 发布时间2024/7/30 20:29
  • 上次更新2024/7/30 20:49:26
查看原帖
这题用lower_bound和upper_bound的区别在哪
1367273
lsuntouched楼主2024/7/30 20:29
#include<bits/stdc++.h> 
using namespace std;
const int maxn=1e5+5;
int n,a[maxn],f[maxn];
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
		cin>>a[i];
	int len=0;
	f[len]=0;
	memset(f,-0x3f,sizeof(f));
	for(int i=1;i<=n;i++){
		int t=lower_bound(f,f+len,a[i])-f;//这里用upper_bound就过不了,没想通(>_<)
		if(t==len)
			if(a[i]>f[len])
				f[++len]=a[i];
			else
				f[len]=a[i];
		else
			f[t]=a[i];	
	}
	cout<<len;
	return 0;
}
2024/7/30 20:29
加载中...