刷新
BST-Treap名次树指针实现板子 Ver2.1

博主头像 为了更好的阅读体验,请点击这里 这里只有板子没有原理QWQ 可实现 1.插入 x 数 2.删除 x 数(若有多个相同的数,只删除一个) 3.查询 x 数的排名(排名定义为比当前数小的数的个数 +1) 4.查询排名为 x 的数 5.求 x 的前驱(前驱定义为小于 x,且最大的数) 6.求 x 的后继( ...

To_Heart—题集——晚星就像你的眼睛杀人又防火

博主头像 连一周一更都做不到,只能说自己太颓废了,,。还有一个月了,至少要做到认真考试不睡觉! 1.CFCF814E link && submission dp 妙妙题。 首先有个结论是发现这张图的生成是有个性的,首先同层的序号一定相邻,其次除了和父亲的连边外其他的边都是同层的。这引导我们考虑定义 dp 状态 ...

Atcoder Beginner Contest 324 F Beautiful Path 题解-分数规划

博主头像 为了更好的阅读体验,请点击这里 分数规划小技巧:尽可能将式子写成存在某种取值,使得不等式成立的形式。 不然可能需要绕几个弯才能想出来。 题目链接 题目大意:给出一个 DAG,每条边有一个 \(b_i, c_i\),保证从编号小的边向编号大的边连边,且 \(1\) 到 \(n\) 必有路径,求 \(1 ...

观光奶牛 详细题解

博主头像 #T3 #SPFA判断正/负环 #二分查找 为啥现在突然发出来:翻自个笔记发现这篇写的挺好hhh 361. 观光奶牛 - AcWing题库 给定一张 \(L\) 个点、\(P\) 条边的有向图,每个点都有一个权值 \(f[i]\),每条边都有一个权值 \(t[i]\)。 求图中的一个环,使“环上各点 ...

高精度减法

博主头像 一、算法描述 要实现两个高精度数的减法,和高精度加法一样都是模拟竖式计算的过程,主要就是解决以下两个问题。 谁大谁小? 由于这两个数字都很大,但是不知道谁更大,所以要先判断哪个数更大,思路如下: 判断这两个数谁的位数更大,位数更大的自然更大。 如果位数不相同,从最高位开始往低位遍历,判断两个数字是否 ...

【数据结构】6.搜索树

博主头像 1.二叉搜索树 1.1 定义 二叉搜索树: 一棵非空的二叉搜索树每个元素都有一个关键字,并且任意两个元素的关键字不同,所有关键字都是唯一的 根节点的左子树小于根节点的关键字 根节点的右子树大于根节点的关键字 左右子树也是二叉搜索树 索引二叉搜索树: 源于普通的二叉搜索树,在每个节点中添加一个 lef ...

算法修养--A*寻路算法

博主头像 本文从广度优先算法为切入点,介绍了广度优先算法、Dijkstra算法、最佳优先搜索以及A*寻路算法, 并展示核心算法代码实现。 ...

高精度加法

博主头像 一、算法描述 高精度问题是指两个数字非常大,超过了int,甚至long long的范围,数字的位数甚至能达到\(10^5\),那么如果要实现这样两个大数字的运算,需要解决以下两个问题: 如何存储? 这样的两个数字相加是不可能用普通类型来存储的,所以我们第一个要解决的问题就是如何存储高精度数。 首先读 ...

CF963B Destruction of a Tree 题解

博主头像 CF963B Destruction of a Tree 题解 洛谷题目链接 这里提供一个较为朴素的 DP 想法。 题意简述 给定一棵树,节点个数不超过 \(2 \times 10^5\),每次可以删掉度数为偶数的点。问最后能不能删完;能删完给出删除方案。 思路分析 首先可以随便选一个点作为根。 其 ...

动态规划——树形DP 学习笔记

博主头像 动态规划——树形DP 学习笔记 引入 前置知识:树基础。 树形 DP,即在树上进行的 DP,最常见的状态表示为 \(f_{u,\cdots}\),表示以 \(u\) 为根的子树的某个东东。 本文将讲解一些经典题目(树的子树个数、树的最大独立集、树的最小点覆盖、树的最小支配集、树的直径、树的重心、树的 ...

【数据结构】5.大根堆和左高树

博主头像 1.大根堆 1.1 定义 大根树:树中的每一个节点的值都大于或等于其子节点的值 大根堆:既是大根树又是完全二叉树(增加了完全二叉树的限制条件)所以下图中只有(a)和(c)是大根堆 1.2 大根堆的插入(数组实现) 假设在下面大根堆中插入一个元素9,插入步骤如下,时间复杂度为O(height)=O(l ...

体验提升-一个“小技巧”彻底解决锦礼商品可见不可售

博主头像 锦礼平台,作为一家企业级B2B2C电商平台,同时服务于企业客户和企业员工,因此需要遵循企业客户的政策规范,确保商城内商品符合规定,并提升员工购物体验。然而,这种独特的运营模式导致锦礼平台上商品的可见不可售问题较为突出,对最终消费者的购物体验和平台的产品和业务产生了较大的负面影响。 ...

二分查找(整数二分)

博主头像 一、算法简介 二分法,即二分搜索法,是通过不断缩小解可能存在的范围,从而求得问题最优解的方法。 例如,如果一个序列是有序的,那么可以通过二分的方法快速找到所需要查找的元素,相比线性搜索要快不少。 此外二分法还能高效的解决一些单调性判定的问题。 二分的关键不在于单调性,或者说二分的本质并不是单调性。 ...

归并排序求逆序对的数量

博主头像 一、题目来源 AcWing算法基础课-788.逆序对的数量 二、题目描述 给定一个长度为 \(n\) 的整数数列,请你计算数列中的逆序对的数量。 逆序对的定义如下:对于数列的第 \(i\) 个和第 \(j\) 个元素,如果满足 \(i < j\) 且 \(a[i] > a[j]\),则其为一个逆序对 ...

归并排序

博主头像 一、算法描述 归并排序,是创建在归并操作上的一种有效的排序算法。 算法是采用分治法的一个非常典型的应用,且各层分治递归可以同时进行。 归并排序思路简单,速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。 思路如下: 取分界点,int mid = (l + r) / 2 ...

深入理解线段树

博主头像 线段树(Segment Tree)是常用的维护区间信息的数据结构,它可以在 O(logn) 的时间复杂度下实现单点修改、区间修改、区间查询(区间求和、区间最大值或区间最小值)等操作,常用来解决 RMQ 问题。 RMQ(Range Minimum/Maximum Query) 问题是指:对于长度为 n ...

【数据结构】4.二叉树

博主头像 1.树 定义:一棵树 t 是一个非空有限元素的集合,其中一个元素为根(root),其余的元素组成 t 的子树(subtree) 级:树根是 1 级(level),其孩子是 2 级,孩子的孩子是 3 级 高度:高度(height)是一棵树中级的个数,也称为深度(depth) 叶子:没有孩子的元素称为叶 ...

[算法分析与设计] 2. 斐波那契堆及其应用

博主头像 一个优先队列需要支持的操作有 insert 插入元素 \(x\)。 find-min 返回最小的元素。 delete-min 删除最小的元素。 decrease-key 将一个元素 \(x\) 减小 \(k\)。\(k \geq 0\)。 常用于实现优先队列的数据结构是堆。 需要注意的是,小根堆需要 ...

【学习笔记】悬线法

博主头像 悬线法可以用来解决给定矩阵极大子矩阵问题。 洛谷 P4147 玉蟾宫 这题本质上就是给定一个矩阵,有一些格不能选,求能选的最大的子矩阵大小,可以用悬线法来解决。 悬线,指的是从某一点向上出发,不穿过任何障碍格的垂直线段。比如下图中的几条悬线: 有一个结论:最大子矩阵一定可以通过某条悬线向左右拓展而成 ...

<1···131415···31>