摘要: "洛谷" "Codeforces" 看到题解那么少就来发一篇吧…… 思路 看完题目一脸懵逼,感觉无从下手。 莫名其妙地想到笛卡尔树,但笛卡尔树好像并没有太大作用。 考虑把笛卡尔树改一下:每个点的父亲设为它的右边第一个大于它的位置。 这时突然发现一个很好的性质:搞答案时每次从右边加入一个点$x$时,以 阅读全文
posted @ 2019-03-09 19:38 p_b_p_b 阅读(449) 评论(0) 推荐(0) 编辑
摘要: "传送门" 思路 先考虑两点如何使他们不连通。 显然路径上所有的割点都满足条件。 多个点呢?也是这样的。 于是可以想到圆方树。一个点集的答案就是它的虚树里圆点个数减去点集大小。 可以把点按dfs序排序,然后统计相邻两点距离和首尾两点距离之和。 为了防止一个点被统计多次,把点权改为边权,再额外算上lc 阅读全文
posted @ 2019-03-09 15:54 p_b_p_b 阅读(224) 评论(0) 推荐(0) 编辑
摘要: "洛谷" "Codeforces" 思路 首先要莫名其妙地想到圆方树。 建起圆方树后,令方点的权值是双联通分量中的最小值,那么$(u,v)$的答案就是路径$(u,v)$上的最小值。 然而这题还有修改,可以在每个方点维护一个$multiset$以支持。 但如果每次修改都暴力修改相邻的方点权值显然要挂, 阅读全文
posted @ 2019-03-09 15:46 p_b_p_b 阅读(220) 评论(0) 推荐(0) 编辑
摘要: "传送门" 又学会了一个新东西好开心呢~ 思路 显然,假如枚举了起始点$x$和终止点$y$,中转点就必须在它们之间的简单路径上。 不知为何想到了圆方树,可以发现,如果把方点的权值记为双联通分量的大小,圆点权值记为 1,那么$x \rightarrow y$的答案就是树上$x\rightarrow y 阅读全文
posted @ 2019-03-09 15:38 p_b_p_b 阅读(187) 评论(0) 推荐(0) 编辑
摘要: "洛谷" "Codeforces" 思路 看到树上路径的统计,容易想到点分治。 虽然只有一个限制,但这个限制比较麻烦,我们把它拆成两个。 设黑边有$a$条,白边有$b$条,那么有 $$ 2a\geq b\\ 2b\geq a $$ 合并两条边时,设原有的是$(a,b)$,要加入的是$(A,B)$,那 阅读全文
posted @ 2019-03-09 11:15 p_b_p_b 阅读(262) 评论(0) 推荐(0) 编辑