合同范本的网站深圳戈麦斯网站开发
news/
2025/9/30 19:56:07/
文章来源:
合同范本的网站,深圳戈麦斯网站开发,万网是干什么的,百度认证怎么认证P3714 [BJOI2017]树的难题
求解树上长度在L到R的树链中颜色段权值和最大的链。
首先求解树上链的问题#xff0c;而且限制了链的长度#xff0c;那么我们需要点分治处理#xff0c;然后考虑每次分治#xff0c;我们可以把链分成两类#xff0c;先处理同色连通块#xf…P3714 [BJOI2017]树的难题
求解树上长度在L到R的树链中颜色段权值和最大的链。
首先求解树上链的问题而且限制了链的长度那么我们需要点分治处理然后考虑每次分治我们可以把链分成两类先处理同色连通块再处理异色连通块然后采用每次查询一个子树的答案然后加入这个子树的方法。然后对于一个给定链对应了一个区间的权值所以我们直接使用线段树即可然后合并的时候直接线段树合并即可。
但是这个问题还有一个特殊性质就是我们每次查询的区间长度是一定的所以如果询问有序就可以使用单调队列处理了那么我们可以通过bfs得到一个有序的序列然后到单调队列上跑即可但是考虑这个复杂度等于单调队列长度而单调队列的长度等于之前出现的最深的点的深度如果直接跑可能是O(n)的但是如果我们将深度从小到大排序那么复杂度一定是小于当前子树大小的那么总复杂度就是O(nlogn)的然后合并两个序列我们可以使用归并复杂度也是正确的。
另外我们考虑异色连通块需要按照最大深度从小到大处理这样可以保证每次复杂度也是正确的但是这样就要要求将整个颜色一起处理。
每一次复杂度是O(dlogdsize)O(dlogdsize)O(dlogdsize)那么总复杂度就是O(nlogn)O(nlogn)O(nlogn)
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/923210.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!