关于st表
  • 板块学术版
  • 楼主xukehg
  • 当前回复2
  • 已保存回复2
  • 发布时间2024/10/8 16:19
  • 上次更新2024/10/8 16:30:39
查看原帖
关于st表
773878
xukehg楼主2024/10/8 16:19

rt,这是正常人的st表查询代码:

int query(int l,int r){
	int s = lg[r - l + 1];
	return max(st[s][l],st[s][r - (1 << s) + 1]);
}

然后有一天我发现有些人是这么写的:

#define clz __builtin_clz
long long get_maxa(int l,int r){
	long long s = 31 - clz(r - l + 1);
	return max(max_a[l][s],max_a[r - (1 << s) + 1][s]);
}

所以下面这一种为什么是对的?

2024/10/8 16:19
加载中...