树链剖分、树剖
文章平均质量分 59
sancpp
这个作者很懒,什么都没留下…
展开
-
2019CCPC-江西省赛 Cotree(树的重心 并查集)
传送门 题意 给两棵树,在两棵树中连一条边, 使 ∑i=1n∑j=i+1ndis(i,j)\sum_{i=1}^{n}\sum^n_{j=i+1}dis(i,j)∑i=1n∑j=i+1ndis(i,j)最小。 分析 需要找到两棵树的重心,将两棵树的重心连起来,再统计每条边对答案的贡献。 对于输入的处理用并查集即可。 代码 #include <bits/stdc++.h> using namespace std; //-----pre_def---- const double PI = ac原创 2021-07-30 11:35:12 · 136 阅读 · 0 评论 -
P2486 [SDOI2011]染色 (树剖+线段树)
传送门 题意 给定一棵 n 个节点的无根树,共有 m 个操作,操作分为两种: 1.将节点 a 到节点 b 的路径上的所有点(包括 a 和 b)都染成颜色 c。 2.询问节点 a 到节点 b 的路径上的颜色段数量。 颜色段的定义是极长的连续相同颜色被认为是一段。例如 112221 由三段组成:11、222、1。 分析 树上路径问题,首先考虑树剖。 用线段树维护区间颜色段信息 线段树的维护的信息&&基本操作 struct node { int l, r, lz;//lz为懒标记原创 2021-03-07 20:34:22 · 1008 阅读 · 3 评论