随笔分类 - 数据结构
摘要:题目: "P2995 [USACO10NOV]牛的照片Cow Photographs" "P4545 [USACO10NOV]奶牛的图片Cow Photographs" "SP7809 COWPIC Cow Photographs" 解析: 一个环形的逆序对 最大的数可以放在最小的数的左边而不贡献逆
阅读全文
摘要:题目: "1832: [AHOI2008]聚会" 解析: 偶尔做做水题挺爽的 两两之间先求出LCA,发现至少有两个LCA是相同的,这个重复LCA也是深度最浅的那个,那我们就选择那个不重复的LCA,因为若选这个重复的LCA的话,这个重复的LCA到另一个LCA的路径会走两遍,反之只会走一遍 三点间的距离
阅读全文
摘要:题目 "P2801 教主的魔法" 解析 ~~成天做水题~~ 线段树,第一问区间加很简单 第二问可以维护一个区间最大值和一个区间最小值,若C小于等于区间最小值,就加上区间长度,若C大于区间最大值,就加0 ps:求教指针线段树,~~我的空间怎么那么大~~ 代码
阅读全文
摘要:题目 "P2184 贪婪大陆" 解析 差分? 在所修改的区间的开头位置+1,表示从这个位置开始往后开始埋一种地雷,在结尾位置+1,表示在这个位置有一种地雷被埋完 查询的时候我们就只需要查询 $[1,r]$中开头的位置,表示$1$到r中共埋了多少种类型的地雷 $[1,l 1]$中结尾的个数,表示$1$
阅读全文
摘要:题目 "SP375 QTREE Query on a tree" 解析 ~~也就是个蓝题,因为比较长~~ 树剖裸题(~~基本上~~),单点修改,链上查询。 顺便来说一下链上操作时如何将边上的操作转化为点上的操作: 可以看到这个题然我们对边进行操作,我们的树剖是对节点进行操作的,所以我们考虑把边权变为
阅读全文
摘要:题目 "P3258 [JLOI2014]松鼠的新家" 解析 非常裸的一道树剖题 链上修改+单点查询的板子 记录一下所经过的点$now[i]$,每次更新$now[i 1]到now[i]$ 我们链上更新时上一次到的终点,是这一次一次更新的起点,又因为在$a_n$处可以不放糖,所以我们每次链上更新完成后,
阅读全文
摘要:题目 "P1438 无聊的数列" 解析: 了解差分的话就很好做了 先考虑修改,用差分的基本思想,左端点加上首项$k$,因为是等差数列,所以修改的区间内都应该加一个增量,即修改区间$(l,r]$内每个数的差分数组都加上公差$d$,显然最后的$r+1$再减去$k+(r l)\times d$。 查询的话
阅读全文
摘要:预备知识: 二叉搜索树(BST) 至于BST,随便看一下就可以, 我们知道二叉搜索树是O(logN)的,那我们为什么要用平衡树呢? 之前我们了解到,BST的插入是小的往左子树走,大的往右子树走,如果凉心出题人给出的序列是有序的呢 这样我们就只能O(N)的操作,GG 旋转(rotate): Splay
阅读全文
摘要:前言:平衡树的前置知识吧 二叉搜索树的定义: 二叉搜索树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于或等于它的根节点的值; (2)若右子树不空,则右子树上所有结点的值均大于或等于它的根结点的值; (3)左、右子树也分别为二叉搜索树; 如图(一颗长残了
阅读全文
摘要:预备知识:线段树,DFS序 DFS序 DFS序,字面意思,就是DFS到的顺序 我们只需要在搜到节点的时候记录一下就可以了 比如这样可能是一个树的DFS序 那知道了DFS序又有什么用呢 我们可以发现一颗子树在DFS序上是连续的一段 那么它就有了一个区间的性质,每个节点对应一段区间,那么我们在进行一些操
阅读全文


浙公网安备 33010602011771号