Loading

上一页 1 ··· 3 4 5 6 7 8 9 下一页
摘要: 将每条边看作一个一个入点,一个出点,入点向出点连长度为原边权的边。那么对于原来的点相关的边形成的新图的点将互相连边,边权为 trie 树上 lca 的深度,直接连的话是 \(O(m^2)\) 的,无法通过。 接下来的任务就是这个 trie 树上怎么优化连边,这不禁让我们想到虚树。关于虚树,一个简单有 阅读全文
posted @ 2021-09-23 17:05 Qiuly 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 意思就是将每棵树树剖成若干条链,然后将链组合在一起的方案数。 枚举一种方案 \(\{b_1,b_2,\cdots,b_m\}\) 表示最终每个树剖出来的链的个数,然后组合方案数的计算是经典容斥。因为同一棵树中的链不能放在相邻的位置,不需要考虑本就不在考虑范围之内的 "同一棵树中的两条链在最终方案中拼 阅读全文
posted @ 2021-09-23 16:56 Qiuly 阅读(78) 评论(0) 推荐(0) 编辑
摘要: UOJ 455. 雪灾与外卖 考虑到球 \(a\),匹配前面的一个洞后应该考虑: 后面有一个球来抢洞:该球失配,非法。 后面有一个洞来抢球:令当前匹配费用为 \(x_a+t\),则相当于让后面的洞匹配了一个权值为 \(-2x_a-t\) 的球。 考虑到洞 \(b\),匹配前面的一个球后应该考虑: 后 阅读全文
posted @ 2021-09-22 12:07 Qiuly 阅读(101) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2021-09-22 08:52 Qiuly 阅读(23) 评论(0) 推荐(0) 编辑
摘要: Data 是没有交换律的,意味着所有的操作都要按时间来。 如果平面上横着竖着加起来有 \(n\) 条直线,那么最多将平面划分的区域数是 \(n^2\) 级别的。不妨考虑操作分块,每 \(B\) 个修改分一个块,在一个块内维护每个区域的标记。接下来讨论一些细节: 找到所属区域:找到其前面有多少竖线,上 阅读全文
posted @ 2021-09-21 22:46 Qiuly 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 内容出自 仓鼠 的讲课【仓鼠的讲课】,由 Qiuly 整理。 AGC 024 F Simple Subsequence Problem 真正的子序列自动机。 构造状态 $(S.T)$,表示当前已经有 $S$ 了,后面还要接上 $T$ 的子序列。注意要最终选出来的答案子序列对应 $(S,\emptyset)$,最开始的串集合中的串为 $(\emptyset,T)$,dp 求出所有的状 阅读全文
posted @ 2021-09-20 19:30 Qiuly 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 注意到相当于给定每个 \(p_i\) 上下界,求合法排列数。 只保留上界或者下界的话是个简单问题,同时考虑上下界不妨往容斥的方向想。假设 \(p_i\) 的限制为 \(p_i\in[L_i,R_i]\) 。不考虑下界的话方案数是 \(\prod \max(0, R_{2n-i}-i+1)\),这里假 阅读全文
posted @ 2021-09-17 09:36 Qiuly 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 本题不弱于小 Z 的袜子,考虑分块,令 \(B\) 为块数。 先考虑单点修改,可以令 \(f(x,y)\) 表示从块 \(x\) 中选出一个数,然后从块 \(y\) 中选出同样的数的方案数,放到平面上,有值的地方就是一个三角形,询问也是询问一个三角形中的 \(f(x,y)\) 和。 怎么做修改,对每 阅读全文
posted @ 2021-09-15 21:36 Qiuly 阅读(156) 评论(0) 推荐(0) 编辑
摘要: 这一类题带有鲜明的套路:分块,然后将跳大块和跳小块分开计算复杂度,跳大块最多跳 $B$ 次,小块最多暴力更新 $\frac{n}{B}$ 次。 同样考虑维护 $b_i$ 表示 $i$ 第一次跳出所在块会跳到哪里去,那么查询的话就可以两个点往前跳,跳到同一个大块后再继续不断跳 $b_i$ 直到相等,撤回来跳 $a_i$ 即可,单次是 $B+\frac{n}{B}$ 的。 问题在于怎 阅读全文
posted @ 2021-09-15 14:20 Qiuly 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 容易发现关键在于怎么把树建出来,考虑扫描线,从左往右扫,用平衡树维护与当前扫描线相交的所有图形的两个交点。因为不存在相交情况,所以很方便的一点就是,交点之间 \(y\) 的大小关系不会改变。 插入一个点的时候,找到这个点下面第一个点:如果这个点是上交点,那么两个图形肯定共用父亲;如果这个点是下交点, 阅读全文
posted @ 2021-09-15 13:13 Qiuly 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 考虑一对数的贡献,注意到这样的话剩下的数的方案数因为上界变得不好计算,考虑先将 $a_i$ 从小到大排序,然后将选排列看作从左往右选数,就可以解决上述问题。 令 $b_i$ 表示 $a_i$ 排序后的结果,$c_i$ 表示 $b_i$ 在原序列的哪个位置,不难发现一对 阅读全文
posted @ 2021-09-15 09:36 Qiuly 阅读(63) 评论(0) 推荐(0) 编辑
摘要: 考虑菊花图怎么做:对所有儿子节点进行分治,然后可以发现每个点最多被暴力加 \(\log\) 次。 考虑原问题,模仿之前的做法,考虑对每个点的所有儿子,带权进行分治(哈夫曼树结构),然后就会获得 54 pts 的好成绩。 这个做法有什么问题?考虑建哈夫曼树时,这些儿子节点中的某一个:如果其和另外的节点 阅读全文
posted @ 2021-09-14 15:37 Qiuly 阅读(74) 评论(0) 推荐(0) 编辑
摘要: 一般情况是维护序列,每次暴力找大于 \(x\) 的位置,然后减去 \(x\),但是这样做的复杂度并没有保障。进一步可以考虑将值域分块,只有在某个数掉到下面的块时更新,剩下的打标记。 不规则的分块是处理这些问题的有效手段。可以考虑以 \(b^k\) 分块,每一块对应 \([b^k,b^{k+1})\) 阅读全文
posted @ 2021-09-12 21:58 Qiuly 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 常见的套路是,对于要统计的连通块,钦定一个关键点,统计关键点的数量。 考虑某个 C-块 的最浅的点,由于这样的最浅的点有多个,考虑怎么钦定一个点作为关键点。事实上,对于这些点可以考虑按照某个顺序排序,只有当一个点前面没有与其 C-联通 的点时,才能被钦定为关键点。 同时考虑更深一些的点,这些点如果跟 阅读全文
posted @ 2021-09-12 15:23 Qiuly 阅读(42) 评论(0) 推荐(0) 编辑
摘要: "保留 \([l,r]\) 编号的节点,找到 \(x\) 所在的连通块"一类问题的常见套路就是在点分树上跳 \(x\) 的祖先,找到最上面的一个满足之间的路径全部存在的祖先 \(p\),然后原问题和 l r p 等价。证明不难。 接着建出点分树后,对于每个 \(p\) 就只需要考虑每个颜色的贡献了: 阅读全文
posted @ 2021-09-06 21:07 Qiuly 阅读(55) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 下一页