摘要: 一、RMQ求LCA 先介绍一下三个数组的含义 ver[i]表示dfs第i个访问的结点 R[i]表示ver[i]所在的层数,也就是深度 first[i]表示ver[i]第一次出现的下标 举个栗子如下图 求出来的三个数组如下图,f->first,v->ver,T就是点的编号 如果我们要求d和f的LCA, 阅读全文
posted @ 2019-11-13 21:57 攒一兜星星* 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 引入 线段树和树状数组,是两个十分相似的数据结构。他们能使对一个区间的数修改以及查询的速度提升许多。两个结构本质相同,各有优缺点,今天我们来从单点修改,单点查询,区间修改,区间查询。 概念 线段树 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶 阅读全文
posted @ 2019-11-13 21:26 攒一兜星星* 阅读(599) 评论(0) 推荐(0) 编辑
摘要: 原文 LCA+桶+树上差分 1. 第一步 首先可以初步判断这个题肯定要计算LCA,方法有倍增/Tarjan-DFS,我们就写个简单的倍增吧,使用链式前向星存储边。 选择1号结点开始dfs,别的结点也可以 dfs过程中计算fa[][]数组(fa[x][i]表示 xx 结点的 2i2i 代祖先是谁)和d 阅读全文
posted @ 2019-11-13 17:11 攒一兜星星* 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 总: 有好多可得的部分分啊,但我也只是拿了20。。 我突然感觉我的图论学的好烂啊。。 1.玩具谜题 emmm... 就是个模拟。。在找规律推推公式。。 2.天天爱跑步 额...这个紫题为啥要放到第二题???(我默认为题目难度是递增的) 但还好我机智,最后两个直接看部分分 emm...然后还是只拿了2 阅读全文
posted @ 2019-11-13 12:01 攒一兜星星* 阅读(110) 评论(0) 推荐(0) 编辑