线段树 每个节点保存4个值,both表示左右端点都取,neither表示左右端点都不取,left表示只取左端点,right表示只取右端点. 维护的特殊姿势: $cur$的$both=max(ls.l+rs.r,ls.both+rs.r,ls.l+rs.both)$ $cur$的$neither=max(ls.nei+rs.nei,ls.r+rs.nei,ls.nei+rs.l)$ $cur$的$left=max(ls.l+rs.l,ls.l+rs.nei,ls.both+ls.nei)$ $cu…