04 2019 档案

摘要:一 题面 Tyvj 1728 普通平衡树 二 分析 比较明显是可以用平衡二叉搜索树(splay)做的。 用权值线段树做,前提就是要先离散化,因为权值线段树维护的值域信息。 板子。 三 AC代码 1 #include <iostream> 2 #include <algorithm> 3 #inclu 阅读全文
posted @ 2019-04-29 22:54 Dybala21 阅读(172) 评论(0) 推荐(0)
摘要:一 题面 D. N Problems During K Days 二 分析 对于这题,刚开始我就是陷入了对公式的执着,企图用公式直接确定第一个数,然后试着去找序列。经过思考和手动模拟后发现是很难保证正确性的。 对于这题,第一步是很明确的,就是确定第一个数,如果给定了$N$和$K$,那么第一个数是可以 阅读全文
posted @ 2019-04-27 20:34 Dybala21 阅读(234) 评论(0) 推荐(0)
摘要:一 题面 C2. Increasing Subsequence (hard version) 二 分析 需要思考清楚再写的一个题目,不能一看题目就上手,容易写错。 分以下几种情况: 1 左右两端数都小于等于构造的数组的最后一个数字 2 左右两端数至少有一个大于构造的数组最后一个数字 a. 左右两端数 阅读全文
posted @ 2019-04-27 16:29 Dybala21 阅读(393) 评论(0) 推荐(1)
摘要:一 题面 E. Minimum Array 二 分析 注意前提条件:$0 \le a_{i} \lt n$ 并且 $0 \le b_{i} \lt n$。那么,我们可以在$a_{i}$中任取一个数进行分析,发现为满足字典序最小,在$b$中找到$n-a_{i}$就是最优解。 接下来分析$b$,在$b$ 阅读全文
posted @ 2019-04-27 12:58 Dybala21 阅读(371) 评论(2) 推荐(0)
摘要:1 题面 FZU1894 2 分析 单调队列的典型引用 需要注意的是在用维护辅助队列的时候,$L$和$R$的初始化都是0时,队列第一个数就是$L$,最后一个数就是$R-1$。 3 AC代码 阅读全文
posted @ 2019-04-24 22:52 Dybala21 阅读(129) 评论(0) 推荐(0)
摘要:一、题目 UVA11922 二、分析 为什么会有伸展树? 伸展树与AVL的区别除了保持平衡的方式不同外,最重要的是在每次查找点时,让该点旋转到根结点,这里可以结合计算机里的局部性原理思考。 伸展树有什么优势? 有了伸展树,我们可以根据每次到根节点的值,根据二叉搜索树的性质,可以将整棵树划分成两个部分 阅读全文
posted @ 2019-04-17 19:57 Dybala21 阅读(125) 评论(0) 推荐(0)
摘要:一、题面 UVA11020 二、分析 最近脑子有点不好使吧,这题还想了很久。 对于给定的两个值要满足题面中的条件,那么我们可以把这两个值转化到平面中的坐标去理解。 首先,需要考虑的是维护的所有点其实是一个严格有序的,画个图就可以理解了。 此时,在维护的所有点的基础上,如果来了一个点,我们可以先考虑x 阅读全文
posted @ 2019-04-08 22:35 Dybala21 阅读(161) 评论(0) 推荐(0)
摘要:一、引文 二叉搜索树的查找效率取决于平均搜索长度,而这又取决去树的形状。当二叉搜索树退化为一个链表时,查找效率非常低。理想的形状是任何结点的左右子树的高度最多相差1,而这样的二叉树我们也称之位平衡二叉树。 二、分析 平衡二叉树的最核心的地方就在于四种旋转情况 左左情况:右旋 即相对根结点的左子树的高 阅读全文
posted @ 2019-04-07 13:12 Dybala21 阅读(321) 评论(0) 推荐(0)
摘要:一、题面 POJ3470 二、分析 POJ感觉是真的老了。 这题需要一些预备知识:扫描线,离散化,线段树。线段树是解题的关键,因为这里充分利用了线段树区间修改的高效性,再加上一个单点查询。 为什么需要离散化? 坐标太分散了,据说可以到 long long,但是就这么多个点,所以离散化一下,方便处理。 阅读全文
posted @ 2019-04-05 19:47 Dybala21 阅读(372) 评论(1) 推荐(0)