logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

计算几何--算法与应用 邓俊辉译(第三版) 第一章 凸包与导言

本文介绍了计算几何中的凸包概念及其应用场景,重点讲解了Andrew单调链算法。首先通过几何性质定义了凸包,并分析了暴力算法的不足。然后详细阐述了Andrew算法的实现步骤:排序后分别计算上下凸包,通过向量叉积判断点的位置关系来维护凸包顶点。算法利用字典序排序和栈结构高效构建凸包,处理了共线点和浮点误差等特殊情况。文章还提供了算法正确性的几何证明,并指出合并上下凸包得到最终结果的策略。该算法在机器人

文章图片
#数学
【期望 滑动窗口 单调队列】P12225 [蓝桥杯 2023 国 Java B] 游戏|普及+

熊大和熊二在玩游戏。他们将 $n$ 个正整数 $a_1, a_2, \dots, a_n$ 排成一行,然后各用一个长度为 $k$ 的框在这个数组中各自随机框选出一段长度为 $k$ 的连续子序列(随机框选指在合法的 $n - k + 1$ 个连续子序列中均匀随机)。熊大记录了他框出的 $k$ 个数中的最大值 $P$,熊二记录了他框出的 $k$ 个数的最小值 $Q$,他们突然有个疑问:$P - Q$

文章图片
#蓝桥杯#c++#算法
【完全二叉树】 P10990 [蓝桥杯 2023 国 Python A] 彩色二叉树|普及+

给定包含 $n$ 个结点的完全二叉树,如下图是一棵包含 $n = 6$ 个结点的完全二叉树。**树上的所有节点开始时没有被染色,颜色为 $0$。**![](https://i-blog.csdnimg.cn/img_convert/daedd29c577130256babe6e48bfe2d67.png)给定 $q$ 次操作,操作可以是:1. $x_i\ y_i\ z_i$,表示将与结点 $x_i

文章图片
#蓝桥杯#数据结构#c++
【DFS序 异或树状数组】P12385 [蓝桥杯 2023 省 Python B] 异或和|普及+

给一棵含有 $n$ 个结点的有根树,根结点为 $1$,编号为 $i$ 的点有点权 $a_i$ $(i \in [1, n])$。现在有两种操作,格式如下:- $1\ x\ y$ 该操作表示将点 $x$ 的点权改为 $y$。- $2\ x$ 该操作表示查询以结点 $x$ 为根的子树内的所有点的点权的异或和。现有长度为 $m$ 的操作序列,请对于每个第二类操作给出正确的结果。

文章图片
#深度优先#蓝桥杯#c++ +1
C++线段树(Segment Tree)三:常用回调类及所有样例

本文介绍了C++线段树(Segment Tree)的实现方法,重点展示了多种回调类的设计。文章首先定义了ISegmentTreeCall基类及其派生类ISingleSegmentTreeCall和IRangleSegmentTreeCall,用于处理不同类型的线段树操作。随后详细介绍了针对不同需求的回调类实现,包括:最大值处理类(CMaxMax、CSetMax、CAddMax)、异或求和类(CXo

文章图片
#c++#数据结构
C++线段树(Segment Tree)二:静态开点、区间修改

本文介绍了C++线段树的实现方法,包括静态开点和区间修改(懒修改)技术。静态开点通过向量存储二叉树节点,节省空间。区间修改采用懒标记技术,最多遍历4logN个节点,通过回调接口OnUpdateBranch和OnUnionSet处理缓存更新。文章提供了线段树的封装类设计,包括基类CSegmentTree、单点更新类CSingeSegmentTree及其动态开点实现CSingeTreeSegmentT

文章图片
#c++#数据结构
【C++贪心 二分查找】P8775 [蓝桥杯 2022 省 A] 青蛙过河|普及+

小 D 新入职了某国的交管部门,他的第一个任务是负责国家的一条长度为 $L$ 的南北主干道的车辆超速检测。为了考考小 D,上司首先需要他解决一个简化的场景。这个周末,主干道上预计出现 $n$ 辆车,其中第 $i$ 辆车从主干道上距离最南端 $d_i$ 的位置驶入,以 $v_i$ 的初速度和 $a_i$ 的加速度做匀加速运动向北行驶。我们只考虑从南向北的车辆,故 $v_i > 0$,但 $a_i$

文章图片
#c++#蓝桥杯#算法
【C++贪心】P8896 DPOI-1」道路规划|普及+

战场上有 $n$ 个据点,从 $1\sim n$ 编号。**每两个据点**之间**都**有一条双向道路。一天,总司令来战区巡视,走着走着迷路了,于是愤怒地下达命令,让你把每一条双向道路变成单向的,使得这些道路**不包含环**(否则总司令会迷路)。但由于每个据点的规模互不相同,总司令从第 $i$ 个据点出发沿着单向道路能**直接到达**的据点数量需要在 $[l_i,r_i]$ 之间。换言之,第 $i

文章图片
#c++#算法
【C++贪心】P8087 『JROI-5』Interval|普及+

【题目摘要】 题目要求找到最短的合法区间长度,满足区间Mex值大于对应长度的f值。给定一个1~n的排列a和数列f,Mex定义为区间内未出现的最小正整数。通过贪心策略,枚举Mex值并计算其对应的最小和最大区间长度,利用差分数组高效维护Mex值对区间的影响,最后检查是否存在满足条件的区间。 【核心思路】 Mex性质分析:Mex为i的区间必须包含1~i-1但不含i。 区间计算:维护当前1~i-1的最小和

文章图片
#c++#算法
【C++反悔贪心】P10051 [CCO2022] Rainy Markets|普及+

有 $N$ 个公交车站,标号为 $1, \ldots, N$。第 $i$ 个公交车站可以容纳 $B_{i}$ 个人。对于每个 $i \in\{1, \ldots, N-1\}$,有一条人行道连接公交车站 $i$ 和公交车站 $i+1$,中间有一个露天市场。第 $i$ 个市场有 $U_{i}$ 把雨伞出售,每把雨伞的价格为 $\$ 1$。现在,有 $P_{i}$ 个人在第 $i$ 个市场里面,所有的

文章图片
#c++#算法
    共 99 条
  • 1
  • 2
  • 3
  • 10
  • 请选择