摘要: 可持久化字典树与可持久化线段树类似。 解决的问题都是类似于“有限制的前缀和”,或二维问题。 而可持久化字典树更多的是解决异或问题,即运用01字典树。 解决异或最大问题,贪心地在字典树上选择。 例题 最大异或和 用前缀异或和把最大的区间异或和转化成单点。 想要与 \(x\) 异或后最大,就从高到低 \ 阅读全文
posted @ 2023-09-13 20:16 bwartist 阅读(124) 评论(0) 推荐(0)
摘要: Beautiful Pair 简要题意: 给出一个长度为 \(n\) 的序列。要求它的子串中,满足左右端点之积小于等于子串中的最大值的个数。 思路 肯定要求出不同的 \([l,r]\) 中的最大值。显然一个一个枚举区间会超时。所以考虑当 \(a_i\) 作为最大值的时候,会产生哪些区间,这些区间满足 阅读全文
posted @ 2023-09-13 19:51 bwartist 阅读(17) 评论(0) 推荐(0)
摘要: 玉蟾宫 考虑用一条竖着的线(上端下端的高度已经确定),在高度不变的情况下左右移动,它能移动的最大范围就是它能产生的最大矩阵 枚举这条线的下端高度。(横纵坐标) 预处理出,每一个点能最多向上延伸到哪里。也就是以这个点为下端的最长的线。 然后用单调队列,处理出每一条竖线的最大移动范围。 具体来说,对下端 阅读全文
posted @ 2023-09-12 15:42 bwartist 阅读(24) 评论(0) 推荐(0)
摘要: [HNOI2009] 梦幻布丁 一种很暴力,很容易想到,但时间复杂度不对的做法: 既然每一次修改是以颜色作为单位的,那就用set或者链表(vector)维护每一个颜色出现的位置。将颜色\(x\)改为\(y\)的时候,遍历\(list_x\)的每一个点,判断其左右是否为\(y\),更新ans(不同颜色 阅读全文
posted @ 2023-09-11 16:56 bwartist 阅读(18) 评论(0) 推荐(0)
摘要: 踩气球 如何查看每次修改会影响的熊孩子呢? 如果只是每一次修改点的时候更改“包含这个点的所有熊孩子”,时间复杂度最大为\(O(NM)\).挂了 这道问题很像“单点修改,区间查询”。 我们知道,对每一次“修改单点”,可以转化成“修改\(\log n\)个包含这个点的区间”,复杂度为\(O(\log n 阅读全文
posted @ 2023-09-11 16:35 bwartist 阅读(18) 评论(0) 推荐(0)
摘要: 1.基本操作:split(分离)和merge(合并) 一系列操作,如修改元素,删除元素,查找前缀后缀都通过这两个基本操作实现。 split的作用是把一颗树根据某个限制(比如模板题中是根据节点的权值划分) 2.有两种fhqtreap.一种维护集合(普通平衡树),一种维护数组(文艺平衡树) 注意fhqt 阅读全文
posted @ 2023-09-10 15:59 bwartist 阅读(20) 评论(0) 推荐(0)
摘要: 更常见,广泛的错误 WA: longlong是否开全 数组大小是否过大/过小 没有初始化全/边界情况没有考虑/需要多次初始化 没删完调试 全局变量n的赋值在某一个函数内写成int n=1;全局中的n没有改变。 特殊考虑?n=1? 数据编号为 1~n 还是 0~n-1 RE/MLE/其它? 把函数类型 阅读全文
posted @ 2023-08-23 09:17 bwartist 阅读(30) 评论(0) 推荐(0)
摘要: # WQS二分/带权二分/凸包优化 ## 应用范围 1. 限制个数:给定**一些物品**和**选物品的限制条件**,要求刚好选 $m$ 个,让你最大化(最小化)权值。 2. 单调性:选的物品越多,权值越大(越小)。 ## 分析 ### 1.原理解释: 假设限制不固定,当选 $x$ 个时,最大权值为 阅读全文
posted @ 2023-07-15 17:19 bwartist 阅读(53) 评论(0) 推荐(0)
摘要: lalalalalala 阅读全文
posted @ 2023-07-15 16:35 bwartist 阅读(14) 评论(0) 推荐(0)
摘要: 斜率优化 大致思想: 将决策点视为若干二维平面上的点,将当前点的已知条件视为斜率,将 \(dp_i\) 视为截距。寻找经过某个点且斜率一定的直线的最小截距。(寻找最大截距时需要将 \(dp\) 取负,转化为最小,这样维护的凸包就始终是下凸包) k,b,y的转换 转换的常见思路:若 \(i\) 为当前 阅读全文
posted @ 2023-07-13 11:55 bwartist 阅读(55) 评论(0) 推荐(0)