本题复杂度?
  • 板块CF19D Points
  • 楼主bsdsdb
  • 当前回复0
  • 已保存回复0
  • 发布时间2025/1/21 20:53
  • 上次更新2025/1/21 23:48:05
查看原帖
本题复杂度?
790188
bsdsdb楼主2025/1/21 20:53

照着 mrsrz 的题解想的:

void query(int l,int r,int o,const int&X,const int&Y,int&x){
	if(l==r){
		if(d[o]>=Y)
		x=l;return;
	}
	const int mid=l+r>>1;
	if(X<=mid&&d[o<<1]>=Y)query(l,mid,o<<1,X,Y,x);
	if(~x)return;
	if(d[o<<1|1]>=Y)query(mid+1,r,o<<1|1,X,Y,x);
}

如果线段树长这样:

......1
.../     \
..2       3
./ \     / \
4   5   6   7
8 9 10 ... 15

然后一个询问覆盖线段 9,5,39,5,3,然后答案在 1515,那不会把 3,5,6,7,8,9,,153,5,6,7,8,9,\cdots,15 都访问到,从而复杂度就变成 O(log2n)\Omicron(\log^2n) 吗?

2025/1/21 20:53
加载中...