随笔分类 -  WC/CTT/CTS(C)

摘要:题面 首先考虑没有环的情况,那么答案肯定就是 \(1\) 到 \(n\) 简单路径的边权异或和。如果出现环,设这个环边权异或和为 \(c\),从这条 \(1\) 到 \(n\) 简单路径到这个环的路径边权异或和为 \(k\),那么答案为 \(dis_n\oplus k\oplus c\oplus k 阅读全文
posted @ 2022-05-20 12:04 cunzai_zsy0531 阅读(26) 评论(0) 推荐(0)
摘要:题面 对模式串建广义SAM,对于每个匹配串,首先求出 \(sl_i\) 表示以 \(i\) 为结尾的后缀的最长匹配长度。设 \(dp_i\) 表示 \(1\sim i\) 的最长匹配长度和,二分答案 \(mid\) 之后,有如下 dp 方程: \[ dp_i=\max(dp_{i-1},\max_{ 阅读全文
posted @ 2022-05-18 21:41 cunzai_zsy0531 阅读(21) 评论(0) 推荐(0)
摘要:题面 比较经典的带修树上第 \(k\) 大问题。通常的做法是树剖树套树然后树上二分,一般3到4个 \(\log\)。这个题还可以用整体二分解决。 思考一下这道题目的整体二分过程:二分一个答案 \(mid\),把所有的 \(>mid\) 的修改放到一个数据结构里,然后查询树上路径和。这显然可以使用树剖 阅读全文
posted @ 2022-05-18 20:21 cunzai_zsy0531 阅读(27) 评论(0) 推荐(0)
摘要:题面 跟暴力写挂有点像,但是这次是三棵树的距离之和最大。考虑在第一棵树上点分治,合并两个儿子子树,求其中的最大值。这个过程可以合并果子,花费 \(1\log\)。在合并的时候拿出这些点来在第二棵树上建虚树,在虚树上 dp,每个位置维护子树内分别在要合并的两个子树(设为 \(0,1\))的直径(包括第 阅读全文
posted @ 2022-05-13 23:01 cunzai_zsy0531 阅读(69) 评论(0) 推荐(0)
摘要:题面 这题感觉思路比较正常。首先考虑化式子,原式需要在两棵树上分别求 \(lca\),这很不好。考虑把式子写成 \[ \frac{1}{2}\big(dis_1(x,y)+dep_1(x)+dep_1(y)-2\times dep_2(LCA_2(x,y)\big) \] 对于这个 \(dis_1\ 阅读全文
posted @ 2022-05-11 19:04 cunzai_zsy0531 阅读(56) 评论(0) 推荐(0)
摘要:题面 这题真的非常 nb! 如果我们不管这个加叶子的操作,只考虑统计答案:每一次统计和点 \(i\) 能够成对的个数。这个可以用点分树做。注意到那个条件 \(dist(i,j)\leq r_i+r_j\) 相当于 \(dist(i,l)-r_i\leq r_j-dist(j,l)\),每个点统计到这 阅读全文
posted @ 2022-05-11 19:01 cunzai_zsy0531 阅读(75) 评论(0) 推荐(0)