摘要: 目录树分治杂谈静态链分治dsu on tree维护子树信息优化枚举树上路径其它奇奇怪怪的杂题长链剖分优化子树DP转移静态点分治点分树优化子树合并树上整体DP 树分治杂谈 ​ 首先在这块内容之前,先介绍一些基础的树论知识。 ​ 设 \(T\) 为任意 \(n\) 个结点的有根树,其根结点为 \(\op 阅读全文
posted @ 2021-12-08 22:21 cutx64 阅读(43) 评论(1) 推荐(0)
摘要: 整体二分 ​ 考虑某种奇怪的问题,询问满足单调性,可以二分。但是不同的mid需要不同的状态来判定,暴力做代价过高。这时往往要使用整体二分来一起计算。此时可以带修。 ​ 整体二分实质上就是最大化询问的共用判定。若当前询问区间对应的答案为 \([L,R]\),我们取其中点 \(M=\left\lfloo 阅读全文
posted @ 2021-12-06 10:08 cutx64 阅读(26) 评论(0) 推荐(0)
摘要: Codeforces Gym 103446H. Life is a Game 容易注意到, 对于每一次询问, 所有经过的节点必定组成一个连通块, 而且所有经过的边必定是原图最小生成树上的包含该连通块的边集. 基于这个性质, 可以想到两种解法: 解法一 对于一个询问, 最朴素的求解办法就是按边权从小到 阅读全文
posted @ 2021-12-06 00:30 cutx64 阅读(226) 评论(0) 推荐(0)
摘要: Codeforces Gym 103409H. Popcount Words 首先得先观察 \(w[\,l,\,r\,]\) 是个什么玩意儿. 通过枚举可发现, \(w[\,0,\,+\infty)=\texttt{01101001100101101001011001101001...}\) 其满足 阅读全文
posted @ 2021-12-02 22:12 cutx64 阅读(510) 评论(0) 推荐(1)
摘要: Codeforces Gym 103409 J. Suffix Automaton 容易将询问转化为求给定长度的本质不同字典序第 \(k\) 大的子串, 对于每一个长度离线处理所有询问即可. 这里使用后缀数组去解决该问题. 求出 height 数组后, 长度为 \(l\) 的本质不同子串数量等于 h 阅读全文
posted @ 2021-12-01 21:15 cutx64 阅读(268) 评论(0) 推荐(0)
摘要: Codeforces 702F. T-Shirts 很容易想到一个暴力做法: 贪心地将T恤按 \(q_i\) 从大到小, 若 \(q_i\) 相等则 \(c_i\) 从小到大排序后, 每一次从 \(1\sim n\) 扫一遍, 能买就买, 最后得出件数. 暴力代码如下: sort(A + 1, A 阅读全文
posted @ 2021-11-30 10:21 cutx64 阅读(85) 评论(0) 推荐(0)
摘要: Codeforces 1606F. Tree Queries 对于询问 \(v_j,\,k_j\) , 发现答案一定在 \(\left[\,1,\,\dfrac{n}{k_j}\,\right]\) 内. 注意到这个 \(\dfrac{n}{k}\) , 可以考虑根号分治. \(k \le \sqr 阅读全文
posted @ 2021-11-18 22:37 cutx64 阅读(78) 评论(1) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2021-11-13 23:31 cutx64 阅读(0) 评论(0) 推荐(0)
该文被密码保护。 阅读全文
posted @ 2021-11-13 21:12 cutx64 阅读(0) 评论(0) 推荐(0)
摘要: Codeforces 1163F. Indecisive Taxi Fee 通过大力分类讨论, 容易把原题归约为“删除一条边 $j$​ 之后求 $1\rightarrow n$​ 的最短路”. 注意到删去非原最短路径上的边对答案无影响. 只需考虑当删去的边在原最短路径上这种情况. 设 \(d_1(x 阅读全文
posted @ 2021-11-13 16:36 cutx64 阅读(135) 评论(0) 推荐(0)