P12547 [UOI 2025] Simple Subsequence 题解
luanyanjia · · 题解
介绍一种比较糖的维护方式。
首先区间可以从左到右贪心匹配,保证前缀和
现在就是要维护区间匹配过程中的
建线段树,每个线段树上维护节点代表区间的
合并左右儿子的时候,
对于右儿子的过程,第一次碰到
inline void PushUp(node &i,node ls,node rs){
i.c1=ls.c1+rs.c1;
i.R=ls.R+std::max(0,rs.R-ls.L);
i.L=rs.L+std::max(0,ls.L-rs.R);
i.mx1=std::max({ls.mx1,ls.L+rs.mx2,rs.mx1});
i.mx2=std::max(ls.mx2,rs.mx2+ls.L-ls.R);
}