随笔分类 - 数据结构——平衡树
摘要:XXVII.CF573E Bear and Bowling 考虑暴力的DP。设 表示前 个元素中选择长度为 的子序列所能得到的最大收益。 考虑由 转移到 。明显,一共有两种转移方式:\(f_{i,j}\righta
阅读全文
摘要:XXV.CF702F T-Shirts 一句没有输出的调试语句忘删了,然后浪费了半小时debug\kk…… 首先观察到我们可以将所有物品按照quality为第一关键字递减排序,然后再关于price为第二关键字排序,这样所有人购买的东西就都必定是按照其一个子序列的顺序购买的。 于是把询问离线下来,然后
阅读全文
摘要:XXII.CF477E Dreamoon and Notepad 题解
阅读全文
摘要:XX.[APIO2018] New Home 新家 题解
阅读全文
摘要:XII.初级版:[NOI2003]文本编辑器;进阶版:[AHOI2006]文本编辑器 两道题操作基本一致,唯一的区别就是进阶版多了一个翻转操作,因此干脆合在一起讲。 可以使用splay或fhq treap通过。个人认为fhq treap更加直观。 光标的位置,我们用一个值表示。 Move/
阅读全文
摘要:XI.CF85D Sum of Medians 这题做法有无数种,其中最暴力的一种就是用vector爆算用棵fhq treap直接处理。比线段树要好想的多。 代码: #include<bits/stdc++.h> using namespace std; typedef long long l
阅读全文
摘要:XXVI.[AH2017/HNOI2017]单旋 先从单旋最小/大值的操作看起。手动模拟一下的话就会发现它对整棵树的形态几乎没有影响,就是断开最小值与它父亲的连边,并用其原本的右儿子(如果存在)替代。之后,将整棵树的根设作其新右儿子。最大值同理。 然后删除最小值也类似。注意删除一个原本就在树顶的最小
阅读全文
摘要:CXXIV.[GYM102155J]stairways 首先,考虑暴力 DP——设 表示当前DP到第 个人,且第一条楼梯上到的最晚的人在时刻 到达,第二条楼梯在时刻 。 然后,观察到 中至少有一个值为前缀
阅读全文
摘要:LVII.CF809D Hitchhiking in the Baltic States 设表示长度为的LIS结尾的最小值。为了方便,设表示前一个物品的(即滚动数组); 则对于一个的物品: 对于的位置,有
阅读全文
摘要:XXXVI.[BJOI2017]喷式水战改 这题类似于毒瘤数据结构题,想起来非常简单,但是写起来…… 平衡树是必须写的——这种毒瘤的维护肯定要写平衡树。 然后说一下怎么DP吧。在每个节点上维护,表示在以该节点为根的子树上,阶段到阶段的最大收益。 直接在pushup时维护
阅读全文