lower_bound怎么写?
  • 板块学术版
  • 楼主pfrig729
  • 当前回复10
  • 已保存回复10
  • 发布时间2024/1/21 22:10
  • 上次更新2024/1/22 10:31:46
查看原帖
lower_bound怎么写?
730178
pfrig729楼主2024/1/21 22:10

lower_bound中的数组如果是struct数组,该怎么写?

#include<bits/stdc++.h>
using namespace std;
const int p=99999997;
int n,c[100005],d[100005];
long long cnt,ans;
struct __
{
	long long i,n;
}a[100005],b[100005],l[100005],r[100005];
bool cmp(const __ &x,const __ &y)
{
	if(x.n==y.n)return x.i<y.i;
	return x.n<y.n;
}
int main()
{
	scanf("%d",&n);
	for(register int i=1;i<=n;++i)
	{
		scanf("%lld",&a[i].n);
		a[i].i=i;
		l[i]=a[i];
	}
	for(register int i=1;i<=n;++i)
	{
		scanf("%lld",&b[i].n);
		b[i].i=i;
		r[i]=b[i];
	}
	stable_sort(l+1,l+n+1,cmp);
	cnt=unique(l+1,l+n+1,cmp)-(l+1);
	for(register int i=1;i<=n;++i)
	{
		a[i].n=lower_bound(l+1,l+cnt+1,a[i].n)-l;
	}
	stable_sort(r+1,r+n+1,cmp);
	cnt=unique(r+1,r+n+1,cmp)-(r+1);
	for(register int i=1;i<=n;++i)
	{
		b[i].n=lower_bound(r+1,r+cnt+1,b[i].n)-r;
	}
	return 0;
}

以上是我的程序的部分代码,一直在lower_bound那里报错

2024/1/21 22:10
加载中...