传送门
点分治裸题(笑 黄学长的题解看不懂啊。。。 自己yy了一种做法 果然蠢到爆炸
将边权看成1和-1,那么合法的路径即为路径权值和为0,并且从中间分开两段和都是0 如果从路径的一个起点开始做前缀和的话,要求终点的权为0且中间点的权出现过0 进行点分治,每一次对所有的点做以当前根为起点的前缀和,然后每一个点都得到了一个点权 要将这些点两两组合使得整条路径合法 首先显然如果两个点权相加为0才是合法的匹配 如果当前点到根的路径中存在点和这个点的点权相等,那么这条路径已经单独存在休息站,将这个点标记 然后分类讨论 如果当前点权为0,如果没有标记,那么可以和其它任意的0匹配;如果有标记,那么不光可以和其它任意的0匹配,还可以自己到根算一条路径 如果当前点权不为0且没有标记,那么只能和有标记的匹配 如果当前点权不为0且有标记,那么可以和其它任意合法的匹配 用数组记录权为i的个数然后计算就行了 时间复杂度
新闻热点
疑难解答