1486F.Pairs of Paths(树链剖分+容斥)

给出一棵树

给出m条路径

询问有多少对路径恰好在一个顶点香蕉

画图之后可以发现一个结论:

两个路径之间有交点,这个交点必定是其中一条路径的LCA。

所以,先对每条路径求LCA,称为点x。

在路径上提取出和x相邻的两个点yz,现在要求经过x不经过yz的路径条数。

画图之后发现,这个数量就是一个端点在x的子树外,一个端点在x的非yz子树内的路径条数。

即,就是经过x与x所有非yz儿子相连的边w的所有路径。

然后怎么处理...

posted @ 2021-05-30 19:07  zlc0405  阅读(38)  评论(0编辑  收藏  举报