随笔分类 -  算法

摘要:温馨提示:本章内容涉及线性代数知识较多! 一. 矩阵 1. 概念 矩阵(Matrix)是一个按照长方阵列排列的复数或实数集合,最早来自于方程组的系数及常数所构成的方阵。 说白了,一个 n×m 的矩阵可以看作一个 n×m 的二维数组,比 阅读全文
posted @ 2025-01-22 17:18 Brilliant11001 阅读(13) 评论(0) 推荐(0) 编辑
摘要:0x00 前言 本篇文章主要记录笔者 NOIP 冲刺阶段复习的各种数据结构题型及 tricks ans tips,同时也用于及时复习与巩固。 那么,开始吧。 0x01 树状数组、线段树 知识点 1:二维偏序 众所周知,逆序对可以用归并排序离 阅读全文
posted @ 2025-01-19 11:17 Brilliant11001 阅读(18) 评论(0) 推荐(0) 编辑
摘要:0x00 前言 本篇文章主要记录笔者 NOIP 冲刺阶段复习的各种 dp 题型及 tricks ans tips,同时也用于及时复习与巩固。 那么,开始吧。 0x01 线性 dp 线性 dp 对我来说是一类很捉摸不定的题型:她太综合了,可以和任何知 阅读全文
posted @ 2024-11-27 14:28 Brilliant11001 阅读(45) 评论(0) 推荐(0) 编辑
摘要:1. 概念 单调队列优化的本质是借助单调性,及时排除不可能的决策,保持候选集合的秩序性。 2. 例题 P1714 切蛋糕 题目大意: 给定一个序列,找出长度不超过 m 的连续子序列,使得子序列中所有数的和最大。 思路: 要求区间和,首先求出前缀和,然后考虑朴素 dp,不难想到用 \(dp[i 阅读全文
posted @ 2024-09-11 16:25 Brilliant11001 阅读(15) 评论(0) 推荐(0) 编辑
摘要:简介 数位 dp 解决的是与数字有关的一类计数问题,在求解过程中常把一个数字的每一位都拆开来看,比如十进制下就是把千位、百位、十位、个位上的数字都拆开来看,其他进制类比十进制。 数位 dp 的问题一般比较显眼,有几个常见形式: 要求统计满足一定条件的数的数量(即,最终目的为计数); 这些条件经过转化 阅读全文
posted @ 2024-08-31 09:29 Brilliant11001 阅读(88) 评论(0) 推荐(0) 编辑
摘要:1. 离线树状数组 介绍 有一类经典问题:给定一个序列,每次询问一个区间内的元素种类数。 这种题的做法有很多:莫队、分块、主席树……在不强制在线的情况下,他们的效率都较低,有一种效率高、空间小的离线做法:离线树状数组。 例题: P1972 [SDOI2009] HH的项链 题目大意 给定一个长度为 阅读全文
posted @ 2024-08-04 19:18 Brilliant11001 阅读(14) 评论(0) 推荐(0) 编辑
摘要:0x00 状态机介绍 百度百科 简单来说,状态机就是一个数学模型,不是一个实际的机器。它含有几个状态,还有几个函数(或者通俗一点叫“桥梁”),使得这几种状态可以在一定条件下实现相互转化。 是不是和动态规划的状态转移过程很像? 所以有一类型的动态规划题目,它的状态可以在一定的 阅读全文
posted @ 2024-07-27 11:55 Brilliant11001 阅读(42) 评论(0) 推荐(0) 编辑
摘要:0x00:概念 状压 DP 是动态规划的一种,通过将状态压缩为整数来达到优化转移的目的。  OI Wiki 简单说来,就是我们通过普通的状态表示无法直接推出状态转移方程了,这时候将当前状态拓展的“轮廓”作为状态表示的一维,而考虑到空间复杂度和计算机原理 阅读全文
posted @ 2024-07-24 22:06 Brilliant11001 阅读(33) 评论(0) 推荐(0) 编辑
摘要:0x00:前置芝士 二叉搜索树 堆 单调栈 0x01:概念 笛卡尔树是一种二叉树,每一个结点由一个键值二元组 (k,w) 构成。要求 k 满足二叉搜索树的性质(左小右大),而 w 满足堆的性质(大根堆或小根堆)。 q1:这么 阅读全文
posted @ 2024-07-23 15:10 Brilliant11001 阅读(16) 评论(0) 推荐(0) 编辑
摘要:0x00:前置芝士 归并排序; 树状数组; 重载运算符(这个大概都会吧)。 0x01:介绍 cdq 分治是一种离线分治算法,可用来处理以下几种问题: 解决和点对有关的问题。 1D 动态规划的优化与转移。 通过 CDQ 分治,将一些动态问题转化为静态 阅读全文
posted @ 2024-07-23 15:09 Brilliant11001 阅读(24) 评论(0) 推荐(0) 编辑
摘要:1. 基本形式 dp[i]=minL(i)jR(i)(或max){dp[j]+val(i,j)}其中与单调队列优化不同的是,单调队列优化的针对对象是多项式 val(i,j) 的每一项仅与 ij 阅读全文
posted @ 2024-07-23 15:09 Brilliant11001 阅读(19) 评论(0) 推荐(0) 编辑
摘要:0x00 一些概念 阅读全文
posted @ 2024-07-23 15:07 Brilliant11001 阅读(3) 评论(0) 推荐(0) 编辑
摘要:0x00 一些概念 什么是“流图”? 给定有向图 G={V,E},若存在 rV,满足从 r 出发能到达 V 中的所有点,则称 G 为一个 “流图”,记为 (G,r),其中 r 称为流图的源点。 在一个 阅读全文
posted @ 2024-07-23 15:07 Brilliant11001 阅读(32) 评论(0) 推荐(0) 编辑
摘要:0x00 概念 给定一棵有根树,若节点 z 既是节点 x 的祖先,又是 y 的祖先,则称 zx,y 的公共祖先。在 x,y 的所有公共祖先中,深度最大的一个称为 x,y 的最近公共祖先,记为 \(\texttt{ 阅读全文
posted @ 2024-07-23 14:43 Brilliant11001 阅读(52) 评论(0) 推荐(0) 编辑
摘要:0x00 概念 差分约束系统是一种特殊的 n 元一次不等式组。 差分约束系统 是一种特殊的 n 元一次不等式组,它包含 n 个变量 x1xn 以及 m 个约束条件,每个约束条件是由两个其中的变量做差构成的,形如 \[x_ 阅读全文
posted @ 2024-07-23 14:42 Brilliant11001 阅读(11) 评论(0) 推荐(0) 编辑
摘要:众所周知,莫队是莫涛大神发明的一种玄学优雅暴力算法,鉴定为:区间查询专业对口,拓展应用十分毒瘤。 莫队的模板特别方便记忆,其实只要领悟了莫队的核心思想,可谓是非常简单。 0x00: 前置芝士 分块基础思想 sort 排序和自定义 \(\ 阅读全文
posted @ 2024-07-23 14:38 Brilliant11001 阅读(33) 评论(0) 推荐(0) 编辑
摘要:前言: 带修主席树的本质并不是主席树,而是树状数组套权值线段树!它并没有可持久化! 所以并没有将这个知识点放到可持久化数据结构的博客里,而是单独拎出来。 正题 刚学习了用可持久化线段树解静态区间第 k 小,那么拓展一下:如果在此基础上加上单点修改,阁下又该如何应对? P2464 [SDOI2 阅读全文
posted @ 2024-07-23 14:37 Brilliant11001 阅读(86) 评论(2) 推荐(1) 编辑
摘要:0x00 简介 可持久化就是通过每次修改都创建新版本,来保留数据结构回滚与访问历史版本的能力。 可持久化分为两类: 部分可持久化:所有版本都可以访问,但是只有最新版本可以修改; 完全可持久化:所有版本都既可以访问又可以修改。 注意:一个数据结构可持久化当且仅当它的拓补结构在 阅读全文
posted @ 2024-07-23 14:35 Brilliant11001 阅读(16) 评论(0) 推荐(0) 编辑
摘要:0x00 简介 伸展树,也叫 Splay,是平衡树的一种。所以它也满足二叉搜索树的所有性质。Splay 灵活多变,应用广泛,能够很方便地支持各种动态的区间操作,码量适中。 定义 struct node { int s[2] 阅读全文
posted @ 2024-07-23 14:33 Brilliant11001 阅读(21) 评论(0) 推荐(0) 编辑
摘要:前置芝士: BST(二叉搜索树)和 heap(堆) (其实 Treap 这个名字就是由 treeheap 拼出来的 ) \(\texttt{Tr 阅读全文
posted @ 2024-02-01 10:21 Brilliant11001 阅读(21) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示