警示后人(如果你 WA #1)
查看原帖
警示后人(如果你 WA #1)
487752
OrezTsim楼主2023/2/16 20:53

倍增处理次大值的时候,如果两个子区间的最大值不相等,那么次大值可能是剩下的那个最大值以及两个子区间的次大值。

Max[i][cur] = max(lef, rig), _Max[i][cur] = min(lef, rig);

要写成

Max[i][cur] = max(lef, rig), _Max[i][cur] = max({lef + rig - Max[i][cur], _Max[i - 1][cur], _Max[i - 1][fa[i - 1][cur]]});
2023/2/16 20:53
加载中...