随笔分类 -  数据结构之树链剖分

摘要:https://vijos.org/d/Bashu_OIers/p/5a79a3e1d3d8a103be7e2b81 求k级祖先,预处理nlogn,查询o1 // pragma GCC optimize(2) // pragma GCC optimize(3) // pragma GCC optim 阅读全文
posted @ 2019-08-11 10:22 walfy 阅读(191) 评论(0) 推荐(0)
摘要:题意:有棵树,每个点有权值,三种操作,1,修改根,2.把a到b的路径上的点权值修改为c,3,查询以a为子树的最小权值 题解:毒瘤树链剖分,树链剖分是能处理链和子树的修改查询的,因为树链剖分本质还是dfs序线段树,然后现在问题就变成了换根,假设根为root 1.root为a,直接查询整棵树,2.lca 阅读全文
posted @ 2019-03-06 14:16 walfy 阅读(240) 评论(0) 推荐(0)
摘要:A:留坑 B:二维sg函数,特判边界情况 E:签到 L:树链剖分裸题 // pragma GCC optimize(2) // pragma GCC optimize(3) // pragma GCC optimize(4) // pragma GCC optimize("unroll loops" 阅读全文
posted @ 2018-11-30 21:28 walfy 阅读(444) 评论(0) 推荐(0)
摘要:给定一棵有n个节点的无根树和m个操作,操作有2类: 1、将节点a到节点b路径上所有点都染成颜色c; 2、询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段), 如“112221”由3段组成:“11”、“222”和“1”。 请你写一个程序依次完成这m个操作=。 题解:树链剖分+线段树,线 阅读全文
posted @ 2018-05-10 22:52 walfy 阅读(175) 评论(0) 推荐(0)
摘要:一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值w。我们将以下面的形式来要求你对这棵树完成一些操作: I. CHANGE u t : 把结点u的权值改为t II. QMAX u v: 询问从点u到点v的路径上的节点的最大权值 III. QSUM u v: 询问从点u到点v的路径上的节点的权 阅读全文
posted @ 2018-05-10 20:30 walfy 阅读(185) 评论(0) 推荐(0)