随笔分类 - C-数据结构
摘要:想回家颓废... 炸弹 一个错误解法是认为答案是后缀的和然后势能线段树,但是答案并不是后缀和。 你注意到可以建出一张图后缩点。但是边数是 $n^2$ 的。发现一个点能影响到的点是连续的,线段树优化建图即可。 向量 很妙的题。传统比较法。发现可以像斜率优化那样维护。(维护一个凸壳,这个我是观察性质与式
阅读全文
摘要:Minimum Cut 还是很妙的。 考虑一种做法是主席树:对于非树边 $(x,y)$,$x\in [dfn_i,dfn_i+siz_i-1]$,$y\notin [dfn_i,dfn_i+siz_i-1]$。主席树维护即可。 当然,这种问题我们一般看 $x$ 到 $y$ 的路径上有没有什么限制,发
阅读全文
摘要:~~懒得打代码所以学了做法口胡了。。。其实完全不难想的降智了。。。~~ 考虑一条链,直接线段树维护每个点能到达的最远距离,用 sgt 维护是 $\mathcal {O}(n\log_2n)$ 的,结合暴力有 $60pts$。(~~这是省选 D2T2,为什么部分分给这么足~~) 考虑对于一个点,我们知
阅读全文
摘要:link 本题即求一个平面图的最小割。 最小割可以转化为空隙的最短路,感性理解一下。。。 就比如可以这样理解: 然后上边右边的空地看成一块,下边左边的空地看成一块,建图跑最短路即可。
阅读全文
摘要:lnk 此题分为两个 Part,对我而言第一个 Part 更难想(得多)。 $\mathrm {Part\ 1}$ 分析 $\sum_{i=1}^n b_i(a_i-b_i^2)$。 考虑我们是确定 $b_i$ 的值,而 $\sum b_i=k$ 是一个定值。此处有一个 trick 就是一个一个加,
阅读全文
摘要:link 容易想到先全局跑一遍,找到这两个点之间的简单路径长度 $L$ 和之中的点,并把其作为根。 然后就不会做了。。。。深入思考? 不妨二分找出最大的深度使得此深度上存在一点离两个距离为 $L$。最多二分 $\lceil\mathrm{log}_2{1000}\rceil=10$ 次。考虑最后一次
阅读全文
摘要:link 最大最小,先二分一下。 首先想了一个贪心。令一个串中 $D=NUM_B-NUM_N$,一眼看过去 $D$ 应该是取所有串最大值和最小值的平均数。但这样很容易 G。这就告诉了我们贪心不好做。 那我们是否可以求得一个范围? 并且,如果我们考虑 $D$ 和总长两个因素的话,很容易出现他俩加起来
阅读全文
摘要:link 因为这个方案数肯定很大,用其他方法都不好直接搞。一般来说有两种方法:按边求解 和 按一个点的父亲是谁求解。(实际操作是有区别的) 每条边单独求解似乎是比较合计的选择(因为这个方案数肯定很大,用其他方法都不好搞)。 还是不要轻易弃做法啊。(可以把 idea 写纸上,一个一个试) 哈哈哈但是边
阅读全文
摘要:link 为什么我会把树剖的常见 trick 忘了啊。。。 trick 1:lca → x 向上跑 + y 向上跑 trick 2:深度可以用这个点到根点的个数表示 化简一下:\(ans=(d_i+d_j-2d_{LCA(i,j)})^2=d_i^2+d_j^2+4d^2_{LCA(i,j)}+2d
阅读全文
摘要:首先 \(10^{100} s\) 后所有情况都会出现。因为 \(2*lcm(1,2,..50)\le 10^{100}\)。 令当前时间为 \(t\),则序列 \(i\) 取的到 \(j\) 需满足的条件为:\(t\equiv place_j \pmod {len_i}\)。(\(len_i\)
阅读全文
摘要:link 前言 其实就是一道线段树合并的板子,因为机房要求写就写了。 题意 问 \(1\sim n\) 的子树中各个子树的众数和。 分析 其实,一般如果要求各个子树的某个东西,我们一般都是考虑 线段树合并/dsu on tree/dfn+其他数据结构(可能还有其他做法,只不过我太菜了不会),所以我才
阅读全文