hdu T3(0.5)+rprmq1+cookies

rprmq1

首先考虑,修改第一维左端点是1,可以对第一维扫描线,做历史max线段树

现在有第一维,考虑猫树(线段树?)分治

具体的把修改拆成线段树上logn的点

在上面扫,询问在分割点处查询

O(nlog^2n+qlogn)

然后是实现部分,首先,要实现历史max,同时要支持令max=s,这里我们多记一个tag然后,这个tag在打之前,要先push-down,但是由于这个tag之后可以接东西所以没问题

还有卡常部分,发现主要是那个\(nlog^2n\)常数大,这里考虑不要那个直接把两条链全add上的操作,而是想分治dp一样,维护一个位置指针,然后在区间上移动

cookies

考虑,给你一个B,如何判定合法

发现这个类似匹配,但是有不全是

考虑仿照hall定理,给出一个充要条件

枚举B这边的集合\(|S|\)

考虑右边对\(S\)的贡献和

大概是\(\sum_i{min(A_i,|S|)}\)

必要性显然,考虑充分性

仿照hall定理,如果不满足,随机找一个不满的左部点,然后走增广路

posted on 2026-08-20 23:21  Grylls_117  阅读(6)  评论(0)    收藏  举报