警示后人
查看原帖
警示后人
731925
happy_zero楼主2023/9/3 11:37

如果你用的是 st 表,由于在查 [Li−1,i−1][L_i-1,i-1] 最小值的时候左边界可能为 00,所以预处理时应该把 f0,jf_{0,j} 也处理进去。

for (int j = 1; (1 << j) <= n; j++)
			for (int i = 0; i + (1 << j) - 1 <= n; i++) {//这里
				f1[i][j] = max(f1[i][j - 1], f1[i + (1 << j - 1)][j - 1]);
				f2[i][j] = min(f2[i][j - 1], f2[i + (1 << j - 1)][j - 1]);
			}
2023/9/3 11:37
加载中...