随笔分类 - 题解
摘要: 高维莫队的一次尝试 最小众数似乎要求我们刻画能回滚的高维莫队 但这并不友好 修改有 ,询问只有 考虑友好的分块,那么就加个值域分块 询问便可以先得到众数的出现次数,然后逐块枚举找到存在众数的块,再在块中枚举数判断是
阅读全文
摘要: 建出 ACAM 后利用 fail 树就可以确定子串关系了,如果建成有向图 然后看问题,考虑最长反链等于最小链覆盖,那么就是求一个可重路径覆盖问题 Floyd 传递闭包后变成不可重路径覆盖,拆点二分图就有最小路径覆盖等于总点数减最大匹配 考虑构造方案,本质上是个传递
阅读全文
摘要: #include <bits/stdc++.h> using namespace std; template<typename Tp> void read(Tp &x) { x = 0; char ch = getchar(); int f = 0; for(; !isd
阅读全文
摘要: 很好的想法是用平面图欧拉定理 那么就要解决的问题是环内的边数与面数 科技的使用:平面图转对偶图 建图过程大概就是将每条无向边拆成两条双向边,考虑找出所有按逆时针方向围成的最小面 那么这个只需要考虑每条的下一条边是谁,极角排序即可 把面当点,点的
阅读全文
摘要: 肯定扫描线在考虑维护什么东西,假设 右移时可以暴力得到所有新值,发现需要维护区间历史版本和以及区间当前值之和 这三个操作对于一个数来说变化次数都是 的,所以可以暴力修改发生变化的值的位置 这显然是一段后缀,可以直接暴力更新,原因是考虑到
阅读全文
摘要: 术树数 这题有许多优美的结论,并加深了对线性基的理解 图论中非常有用的结论(路径可重): 1.包含一个点的简单环张成了包含一个点的所有环 2.考虑图的任意一棵生成树,取两点树上路径权值和异或上任意环的异或值构成了这两点间的所有路径
阅读全文
摘要: 感觉是很套路的题 按 分层后 很容易想到 注意到同层 递增, 递减 所以很容易猜到决策单调性,但是每个点的决策集合是不同的区间,这与一般的决策单调性可不一样 怎么办呢?扔到线段树把决策区间相同的放在一块一起做,最终答案取 $\m
阅读全文
摘要: 这个问题是不好判断的 考虑简单点的, 到 是否连通 那么只要在最外围一圈 #(显然一些位置不能加),判断 和 是否能通过 # 八连通即可 如果是双连通呢?只要这两点所在连通块不能通过只加一个 #
阅读全文
摘要: 学习到了一些 的 设 表示用了 的元素,当前和为 的方案数 有两样不好处理的东西 第一是当前和不一定为整数 第二是可重集合的重复计数问题 关于问题二的解决只需钦定加数大小顺序即可 这个显然不能
阅读全文