处理手法学习(树链剖分)
今天vp了两场cf,感觉对开眼界还是很有用的,手感也回来了点
首先给出一些点,如何找出是否属于同一条链
首先暴力方法就是每次dfs,在分叉大于2的地方看看是否包含所有的点
这是个笨方法
处理手法是首先找到深度最大的点,这个点一定是端点的一头,然后找到离这个点最远的第二个点,然后有一条定理就是
如果在同一条链上,那么三点距离中的最小两点一定等于最长的路径长度
然后枚举点就行了
妙蛙
然后就是悟出来的一个事情,当两个数组进行比较的时候,比如变换,那么一定要把一个数组固定在相对约束较强的维度,然后贪心
天才选手zerol的主页:https://zerol.me/
|
WeepingDemon的个人主页:https://weepingdemon.gitee.io/blog/