摘要:
线段树分治 线段树分治是一种可以离线处理带撤销问题的常用手段。一般而言,题目中加入操作很好维护,但删除操作不好维护,这时可以对时间维建线段树,把每一个操作加入其存在时间段对应的线段树节点上,然后处理所有询问,进入一个节点时将这个节点里的操作加入,递归左右儿子,然后撤销这一次做的操作,在线段树根节点处 阅读全文
摘要:
boruvka算法 就是最小生成树 B 算法。B 算法的思路是每次对每个连通块,求出它能连出去的权值最小的边,然后再按边权从小到大合并。由于每次操作连通块数至少减半,所以复杂度是 \(O(m\log n)\)。 CF1305G Kuroni and Antihype 题意:长为 \(n\) 的数列 阅读全文
摘要:
JOISC 2018 loj 上有几乎全部的题目,写了题意的就是 loj 上没有的。 D1T1 简单题。 根据颜色段均摊的结论,每个点到根的路径上颜色段的总和是 \(O(n\log n)\) 的,于是直接每次暴力找颜色段即可。复杂度 \(O(n\log^2n)\)。 提交记录 D1T2 又是计算几何 阅读全文
摘要:
JOISC 2017 loj 上有几乎全部的题目,写了题意的就是 loj 上没有的。 D1T1 开场放大。 首先,对于一个点,它最后覆盖的一定是一个矩形,这就意味着如果我们知道了 \(u,d,l,r\) 操作各用了多少次,他们之间的顺序是不重要的,我们可以直接当做把一种操作做完再做剩下的操作,这样就 阅读全文
摘要:
JOISC 2016 loj 上有几乎全部的题目,写了题意的就是 loj 上没有的。 D1T1 一开始把题目看错了,还写了棵线段树。 把询问离线,倒着扫一遍,就变成了求最长不上升子序列,用树状数组维护即可。 提交记录 D1T2 来自 Kubic 的神仙做法。 考虑 Filp 一个位置和剩下所有位置, 阅读全文
摘要:
JOISC 2015 loj 上有几乎全部的题目,写了题意的就是 loj 上没有的。 D1T1 简单题。 因为 \(k\) 很小,考虑依次确定最后第 \(i\) 位是什么。我们倒序考虑所有操作,维护最后第 \(i\) 位当前在第几位,就可以一直推下去。 提交记录 D1T2 直接暴力复杂度就是 \(O 阅读全文
摘要:
JOISC 2014 loj 上有几乎全部的题目,写了题意的就是 loj 上没有的。 D1T1 想到了最短路的做法,不过可能还需要整体二分,复杂度至少有 2 log。 有复杂度更优秀的贪心做法。把边按时间倒序加边,然后从终点开始 dfs 来更新每个点可以的最晚出发时间,每条边走之后肯定就不会再让答案 阅读全文