随笔分类 - 2018
摘要:题面 考虑把操作时间当作下标建立线段树,每次操作要么是单点修改为 \(x\),要么是修改为 \(1\)。输出答案就是输出线段树根节点的答案。 点击查看代码 #include<iostream> #include<cstdio> using namespace std; const int N=1e5
阅读全文
摘要:题面 跟暴力写挂有点像,但是这次是三棵树的距离之和最大。考虑在第一棵树上点分治,合并两个儿子子树,求其中的最大值。这个过程可以合并果子,花费 \(1\log\)。在合并的时候拿出这些点来在第二棵树上建虚树,在虚树上 dp,每个位置维护子树内分别在要合并的两个子树(设为 \(0,1\))的直径(包括第
阅读全文
摘要:题面 这题感觉思路比较正常。首先考虑化式子,原式需要在两棵树上分别求 \(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\
阅读全文

浙公网安备 33010602011771号