cychester

随笔分类 -  树链剖分

BZOJ4381 : [POI2015]Odwiedziny / Luogu3591[POI2015]ODW - 分块+树剖
摘要:Solution 在步伐$pace$比较小的时候, 我们发现用前缀和直接维护会很快 而在$pace$比较大的时候, 则暴力往上跳会最优 设$blo= \sqrt{N}$ 若$pace<=blo$, 则利用前缀和更新, 预处理复杂度$O(N \sqrt{N})$, 查询复杂度$O(1)$ 若$pace 阅读全文

posted @ 2018-10-24 21:08 cychester 阅读(333) 评论(0) 推荐(0)

Luogu 4556 雨天的尾巴 - 启发式合并线段树
摘要:Solution 用$col$记录 数量最多的种类, $sum$记录 种类$col$ 的数量。 然后问题就是树上链修改, 求 每个节点 数量最多的种类。 用树上差分 + 线段树合并更新即可。 Code 1 #include<cstdio> 2 #include<cstring> 3 #include 阅读全文

posted @ 2018-09-20 11:35 cychester 阅读(175) 评论(0) 推荐(0)

CF487E Tourists - Tarjan缩点 + 树剖 + multiset
摘要:Solution 先Tarjan求出点双联通分量 并缩点。 用$multiset$维护 点双内的最小点权。 容易发现, 点双内的最小点权必须包括与它相连的割边的点权。 所以我们必须想办法来维护。 所以考虑用割点的点权更新它的父节点, 这样查询 点双 内的最小点权只需要查询本身的 $multiset$ 阅读全文

posted @ 2018-09-19 21:09 cychester 阅读(173) 评论(0) 推荐(0)

Nowcoder 练习赛26E 树上路径 - 树剖
摘要:Description 传送门 给出一个n个点的树,1号节点为根节点,每个点有一个权值 你需要支持以下操作 1.将以u为根的子树内节点(包括u)的权值加val 2.将(u, v)路径上的节点权值加val 3.询问(u, v)路径上节点的权值两两相乘的和 Solution 维护 平方和与 数值和 修改 阅读全文

posted @ 2018-09-08 08:29 cychester 阅读(224) 评论(0) 推荐(0)

Luogu 2912 [USACO08OCT]牧场散步Pasture Walking
摘要:快乐树剖 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #define rd read() 5 #define lson nd << 1 6 #define rson nd << 1 | 1 7 using namesp 阅读全文

posted @ 2018-08-22 21:47 cychester 阅读(149) 评论(0) 推荐(0)

导航