社区讨论

警示后人(If you've WAed on #19 by ST)

P8818[CSP-S 2022] 策略游戏参与者 2已保存回复 1

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
1 条
当前快照
1 份
快照标识符
@mhjty3p8
此快照首次捕获于
2025/11/04 08:27
4 个月前
此快照最后确认于
2025/11/04 08:27
4 个月前
查看原帖
检查你建 ST 表时是否混淆了 n,mn,m
以我的建树为例:
CPP
inline void prework(){
	for(rint i = 2; i <= max(n, m); ++i)
		Log2[i] = Log2[i>>1]+1;
	for(rint t = 1; t <= 19; ++t)
		for(rint i = 1; i <= n; ++i){
			if(i+(1<<t-1) > n) continue;
			st1a[i][t] = min(st1a[i][t-1], st1a[i+(1<<t-1)][t-1]);
			st1b[i][t] = max(st1b[i][t-1], st1b[i+(1<<t-1)][t-1]);
			st1d[i][t] = min(st1d[i][t-1], st1d[i+(1<<t-1)][t-1]);
			st1e[i][t] = max(st1e[i][t-1], st1e[i+(1<<t-1)][t-1]);
		}
	for(rint t = 1; t <= 19; ++t)
		for(rint i = 1; i <= m; ++i){
			if(i+(1<<t-1) > m) continue;
			st2a[i][t] = min(st2a[i][t-1], st2a[i+(1<<t-1)][t-1]);
			st2b[i][t] = max(st2b[i][t-1], st2b[i+(1<<t-1)][t-1]);
		}
}
我错在第二行的 i <= max(n, m)(写成了 i <= n),和 bb 建树时的 i <= m(也写成了 i <= n)。
然后死了。

回复

1 条回复,欢迎继续交流。

正在加载回复...