【考试总结】2021-02-19 继续

倚天剑的愤怒

设考虑到 \(i\) 后得到的数是 \(x\),如果 \(x+v_i<0\) 则后面连续的负数都要删掉,连续正的肯定都不删

这样配合线段树和二分可以做到 \(\Theta(mn\log^2n)\),如果离线可能会有更好的复杂度

(还没暴力快)

这个做法会被正负区间交错的数据卡掉,然而发现每个正数会拿来消掉一些负数

直接对着正数二分加线段树维护前缀最小值是不对的,这个正数抵消的时候可以抵消后面的负数来达到最小的抛弃,所以这部分堆扫一遍就行

把取堆里面每个元素的前缀和代价搞出来,离线扫一下就行

原谅

按权值排序之后逆序扫,把当前所有点都加入的是需要合并它和它们的 \(lca\) 的链

那么如果加入某个点后存下来的最小值和这个值一样,更新答案

如果有一个权值全部加入之后最小值满足大于等于次于其的第一个,枚举对应的在连通块周边的点扩展

这个题考试的时候没写完,昨晚 \(CF\) 的树题和这个都没写完

收集

没写的都是简单题/dk

发现这个带修就是 \(\texttt{SDOI2015寻宝游戏}\)

用 \(set\) 维护 \(dfn\) 序即可,然后这个和上题不同的是这题并不需要返回,那么就是关键点直径,和 \(\texttt{ZJOI2007捉迷藏}\) 是一样的

所以就是代码题

上一篇:THUSC2021 Day1口胡题解


下一篇:dp套dp学习笔记