摘要:
思路:若区间包含的\(a_i\)完整,最小众数为\(1\);若\(a_l\)只有后缀\([x,a_l]\)且\(a_r\)只有前缀\([1,y]\),当且仅当\(\forall i \in [l,r], a_i \ge x\)时最小众数是\(x\),否则为\(1\)。为方便求解,先求出所有最小众数为\(x(x>1)\)的子区间并贡献\(x - 1\),再让所有子区间统一贡献\(1\)。利用小根笛卡尔树,对于笛卡尔树上节点\(u\),在其左右子树分别取\(l\)、\(r\)计算贡献。左端点有\(siz_{ls} +1\)种取法,右端点有\((sum_{rs}+a_u) - (x - 1)(siz_{rs}+1)\)种取法,每个方案贡献\(x - 1\) ,经化简可得\(u\)子树总贡献为\((siz_{ls}+1) ((sum_{rs}+a_u)\frac{a_u(a_u - 1)}{2} - (siz_{rs}+1) \frac{(a_u - 1)a_u(2a_u - 1)}{6})\) ,该问题可线性求解,单\(\log\)做法能简化代码 。 阅读全文
posted @ 2025-10-09 20:50
wing_heart
阅读(17)
评论(0)
推荐(1)

浙公网安备 33010602011771号