摘要: \(\texttt{0x00}\):前置芝士 二叉搜索树 堆 单调栈 \(\texttt{0x01}\):概念 笛卡尔树是一种二叉树,每一个结点由一个键值二元组 \((k,w)\) 构成。要求 \(k\) 满足二叉搜索树的性质(左小右大),而 \(w\) 满足堆的性质(大根堆或小根堆)。 q1:这么 阅读全文
posted @ 2024-07-23 15:10 Brilliant11001 阅读(5) 评论(0) 推荐(0) 编辑
摘要: \(\texttt{0x00}\):前置芝士 归并排序; 树状数组; 重载运算符(这个大概都会吧)。 \(\texttt{0x01}\):介绍 cdq 分治是一种离线分治算法,可用来处理以下几种问题: 解决和点对有关的问题。 1D 动态规划的优化与转移。 通过 CDQ 分治,将一些动态问题转化为静态 阅读全文
posted @ 2024-07-23 15:09 Brilliant11001 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 单调队列优化 dp 浅学 1. 概念 单调队列优化的本质是借助单调性,及时排除不可能的决策,保持候选集合的秩序性。 2. 例题 P1714 切蛋糕 题目大意: 给定一个序列,找出长度不超过 \(m\) 的连续子序列,使得子序列中所有数的和最大。 思路: 要求区间和,首先求出前缀和,然后考虑朴素 dp 阅读全文
posted @ 2024-07-23 15:08 Brilliant11001 阅读(2) 评论(0) 推荐(0) 编辑
摘要: \(\texttt{0x00}\) 一些概念 阅读全文
posted @ 2024-07-23 15:07 Brilliant11001 阅读(2) 评论(0) 推荐(0) 编辑
摘要: \(\texttt{0x00}\) 一些概念 什么是“流图”? 给定有向图 \(G = \{V, E\}\),若存在 \(r\in V\),满足从 \(r\) 出发能到达 \(V\) 中的所有点,则称 \(G\) 为一个 “流图”,记为 \((G,r)\),其中 \(r\) 称为流图的源点。 在一个 阅读全文
posted @ 2024-07-23 15:07 Brilliant11001 阅读(8) 评论(0) 推荐(0) 编辑
摘要: \(\texttt{0x00}\) 概念 给定一棵有根树,若节点 \(z\) 既是节点 \(x\) 的祖先,又是 \(y\) 的祖先,则称 \(z\) 是 \(x,y\) 的公共祖先。在 \(x,y\) 的所有公共祖先中,深度最大的一个称为 \(x,y\) 的最近公共祖先,记为 \(\texttt{ 阅读全文
posted @ 2024-07-23 14:43 Brilliant11001 阅读(43) 评论(0) 推荐(0) 编辑
摘要: \(\texttt{0x00}\) 概念 差分约束系统是一种特殊的 \(n\) 元一次不等式组。 差分约束系统 是一种特殊的 \(n\) 元一次不等式组,它包含 \(n\) 个变量 \(x_1\sim x_n\) 以及 \(m\) 个约束条件,每个约束条件是由两个其中的变量做差构成的,形如 \[x_ 阅读全文
posted @ 2024-07-23 14:42 Brilliant11001 阅读(7) 评论(0) 推荐(0) 编辑
摘要: \(\texttt{just some tips……}\) \(\texttt{0x00 Lead in}\) 我们知道,图论的难点一般都不在算法的模板和原理,而在于对于题意的抽象,也就是:建图。 所以,如何建图在很大程度上影响了你能否做出这道题。 \(\texttt{0x01 tip1}\):虚点 阅读全文
posted @ 2024-07-23 14:41 Brilliant11001 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 题目大意: 给定一个长度为 \(n\) 的序列,有 \(q\) 次询问,每次询问一个区间 \([l,r]\),需要输出该区间内每个前缀的和的异或和。 很容易想到用前缀和维护序列 \(a\),异或和暴力处理,但这样的时间复杂度是 \(O(nq)\) 的,只能通过测试点 \(0,1,3\)。 阅读全文
posted @ 2024-07-23 14:40 Brilliant11001 阅读(5) 评论(0) 推荐(0) 编辑
摘要: 众所周知,莫队是莫涛大神发明的一种玄学优雅暴力算法,鉴定为:区间查询专业对口,拓展应用十分毒瘤。 莫队的模板特别方便记忆,其实只要领悟了莫队的核心思想,可谓是非常简单。 \(\texttt{0x00:}\) 前置芝士 分块基础思想 \(\operatorname{sort}\) 排序和自定义 \(\ 阅读全文
posted @ 2024-07-23 14:38 Brilliant11001 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 大致题意: 多组测试数据,每组数据给定一个长度为 \(n\) 的序列和一个参数 \(k\),要求将此区间划分成不超过 \(k\) 段,使这些区间中的逆序对数量的最大值最小。 思路: 对于求“最大值最小”这类问题,很容易想到二分。显然,本题的答案是具有单调性的,即当划分的段数减少时,区间中 阅读全文
posted @ 2024-07-23 14:37 Brilliant11001 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 前言: 带修主席树的本质并不是主席树,而是树状数组套权值线段树!它并没有可持久化! 所以并没有将这个知识点放到可持久化数据结构的博客里,而是单独拎出来。 正题 刚学习了用可持久化线段树解静态区间第 \(k\) 小,那么拓展一下:如果在此基础上加上单点修改,阁下又该如何应对? P2464 [SDOI2 阅读全文
posted @ 2024-07-23 14:37 Brilliant11001 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 题目传送门 大致题意: 给出长度为 \(n\) 的序列 \(A\),同时给出 \(m\) 次询问至少要将区间 \([l,r]\) 分成多少段,才能使每段中没有数的出现次数 \(> \lceil \frac{len}{2} \rceil\)。 分析: 首先,如果连该区间的众数的出现次数都 \(\le 阅读全文
posted @ 2024-07-23 14:36 Brilliant11001 阅读(0) 评论(0) 推荐(0) 编辑
摘要: \(\texttt{0x00}\) 简介 可持久化就是通过每次修改都创建新版本,来保留数据结构回滚与访问历史版本的能力。 可持久化分为两类: 部分可持久化:所有版本都可以访问,但是只有最新版本可以修改; 完全可持久化:所有版本都既可以访问又可以修改。 注意:一个数据结构可持久化当且仅当它的拓补结构在 阅读全文
posted @ 2024-07-23 14:35 Brilliant11001 阅读(0) 评论(0) 推荐(0) 编辑
摘要: \(\texttt{0x00}\) 简介 伸展树,也叫 \(\texttt{Splay}\),是平衡树的一种。所以它也满足二叉搜索树的所有性质。\(\texttt{Splay}\) 灵活多变,应用广泛,能够很方便地支持各种动态的区间操作,码量适中。 定义 struct node { int s[2] 阅读全文
posted @ 2024-07-23 14:33 Brilliant11001 阅读(4) 评论(0) 推荐(0) 编辑