CF780G

做 ds 做傻了。

将落到木板上分裂的球称为一类球,直接穿过的称为二类球。

观察到对于一个木板,只关注有多少一类球落到它上面而不关心具体坐标。维护球所在坐标是不可行的。考虑维护木板,维护有多少一类球落到这个木板上。按照高度枚举所有木板,能得到某个坐标某个高度上新增出来的球。这些球作为一类球落到木板 \(i\) 的条件是 \(h_i<now\)\(u_i+s_i>=now\),并且 \(i\) 是该坐标上最高的满足条件的木板。乍一看很像一个偏序形式,但是我并不会维护。

考虑枚举木板的同时加入 \(u_i+s_i>now\) 的木板,在线段树上维护 set 代表覆盖区间坐标的所有 \((h_i,i)\),标记永久化维护,查询时单点查询即可。

注意取模!

代码

posted @ 2024-08-24 10:27  BYR_KKK  阅读(9)  评论(0编辑  收藏  举报