树链剖分
zhouyuheng2003
不要害怕落日的黑暗,因为明天的太阳还会照常升起
展开
-
动态dp
前言 这是今年NOIP前的坑了,当时由于感觉不太会考所以没先学 然而NOIP考到了 打出GG 现在回来补一波 题目 先拖出模板题,从模板题认识动态dp的一种典型形式 洛谷P4719 【模板】动态dp 题意: 给定一棵n个点的树,点带点权 有m次操作,每次操作给定x,y,表示修改点x的权值为y 你需要在每次操作之后求出这棵树的最大权独立集的权值大小 数据范围: 1≤n,m≤1051\le n,m\l...原创 2019-03-22 21:18:59 · 1406 阅读 · 0 评论 -
长链剖分:O(nlogn)预处理O(1)求kth祖先
前言 一个长链剖分的小trick 问题 如题,数据范围大概10510^5105 思路 我们知道重链剖分是什么,即选择自己儿子中子树节点树最大的作为重儿子,其它儿子为轻儿子 而长链剖分则是选择儿子中子树深度最大的儿子为长儿子,其它为短儿子 这样进行树剖后就有一些很奇妙的性质,即:一个节点的kth祖先所在的链的链长大于k 我们考虑:对于每一条长度为xxx的链,我们记录链头的每个kth祖先(k∈[1,x...原创 2019-04-01 08:41:30 · 363 阅读 · 0 评论 -
Dominant Indices(CF 1009 F)
前言 记录一下长链剖分的小技巧 题目相关 链接 题目大意 一棵nnn个节点的树,定义fi,jf_{i,j}fi,j为与iii号点距离为jjj的节点数量,对于每个iii求出一个最小的jjj满足fi,jf_{i,j}fi,j是所有jjj的取值中最大的 数据范围 n≤106n\le10^6n≤106 题解 直接长链剖分即可,我们发现“重”儿子继承的时候是直接最前面加个1,所以可O(1)\mathca...原创 2019-04-02 17:53:39 · 229 阅读 · 0 评论