
算法竞赛(Python)
文章平均质量分 87
介绍算法竞赛相关内容,采用python描述。
参考罗老师的书《算法竞赛》、OI wiki
借助了ai来辅助创作,
内容对 初学者 有一定的帮助。
可以借助ai工具了其它相关文章食用
Albeata
大学牲
展开
-
算法竞赛中的—构造(Constructive Algorithms)
构造(Constructive Algorithms)是算法竞赛中常见的一类问题,要求选手通过某种规则或策略构造出满足特定条件的解。这类问题通常没有固定的解法,而是需要选手发挥创造力,设计出符合要求的构造方法。下面介绍构造问题的特点、常见类型、解题思路以及一些经典例题。原创 2025-04-07 19:01:29 · 691 阅读 · 0 评论 -
分治法(Divide and Conquer)
它的核心思想是将一个大问题分解成若干个规模较小的子问题,递归地解决这些子问题,然后将子问题的解合并起来,得到原问题的解。总之,快速幂利用分治法将一个大的幂运算问题分解成多个小问题,以大幅度提高效率,尤其对于指数非常大的情况,它能显著减少计算的时间。的快速幂利用了二进制的特性,将指数 b 分解为多个二的幂的和。分治法将平面上的点集分成左右两部分,分别求解左右两部分的最近点对,然后再检查跨越分界线的点对是否更近。有三根柱子和若干个大小不同的盘子,盘子最初按大小顺序叠放在一根柱子上,最小的在上,最大的在下。原创 2025-03-31 15:56:38 · 1087 阅读 · 0 评论 -
离散化(discretization)
离散化:把 无限空间中有限的个体 映射到 有限的空间 中去,以此提高算法的时空效率。给出一列数字,有时候这些数字的值的绝对大小不重要,而相对大小重要。例如给一个班级学生的成绩进行排名,此时不关心成绩的绝对值,只需要输出排名。“离散化”即用数字的相对值替代他们的绝对值。是一种数据处理技巧,把分布广疏的数据转为密集分布,从而让算法更快速、省空间地处理。离散化是程序设计中一个常用的技巧,它可以有效的降低时间复杂度。其基本思想就是在众多可能的情况中,只考虑需要用的值。原创 2025-03-29 16:34:49 · 464 阅读 · 0 评论 -
前缀和(Prefix Sum) 与 差分 (Difference Array)
它应用于区间的修改和询问问题。把给定的数据集 A 分成很多区间,对这些区间做多次操作,每次操作是对某个区间内的所有元素做相同的加减操作,若一个个修改区间内的每个元素很耗时,引入差分数组 D,当修改某个区间时,只需要修改这个区间的端点,就能记录整个区间的修改,而对端点的修改很容易为 O(1)。具体来说,树上前缀和的目标是求解从根节点到某个指定节点,或者从任意节点到根节点之间的路径上的某种累积和(如节点的值的和)。此外,树上前缀和也可以用于计算子树的和,即计算从某个节点出发的子树的所有节点的值之和。原创 2025-03-29 16:30:29 · 1752 阅读 · 0 评论 -
倍增法(binary lifting)和 ST 算法(Sparse Table)
倍增法 和 二分法 的思想是 “相反”的,效率都很高。二分法是每次将解存在的空间缩小一半,倍增法是每次扩大一倍,快速扩展到大空间,线性的处理转化为对数级的处理,大大地优化时间复杂度。原创 2025-03-28 15:02:13 · 1045 阅读 · 0 评论 -
基本算法—d.三分法(Ternary Search)
三分法(Ternary Method)(数学应用、决策应用、社会应用、三分类)三分法(Ternary Method),在不同的领域有不同的应用,主要指的是在某些情况下将问题或过程分成三部分进行处理。这里,我将从几个常见的角度介绍三分法,包括数学、算法和决策中的应用。一、三分法在数学中的应用在数学中,三分法通常指的是将一个区间分成三个部分,进行迭代计算的过程。最常见的应用是三分查找(Ternary Search),它是优化问题中寻找最优解的一种方法。1.原创 2025-03-27 11:31:11 · 829 阅读 · 0 评论 -
基本算法—c.二分法(Binary Search)
介绍 二分法 的 原理原创 2025-03-27 11:23:47 · 438 阅读 · 0 评论 -
基本算法—a.算法复杂度(Algorithmic Complexity)
算法复杂度 是用于描述一个算法在执行时所需要的资源量,通常是时间和空间。原创 2025-03-26 21:09:04 · 897 阅读 · 0 评论 -
基本算法—b.尺取法(双指针法)(滑动窗口法)(two pointers)
尺取法(two pointers)尺取法(又称滑动窗口法)是一种常用于解决数组或字符串相关问题的算法技巧。它特别适用于那些需要处理连续 子数组或子字符串的问题,尤其是在时间复杂度要求较高的场合。1. 尺取法的基本思想尺取法的核心思想是通过维护一个“窗口”来不断扫描输入数据。在处理过程中,这个窗口的“大小”可以根据具体情况动态调整。窗口通常是一个连续的区间,它的“左端”和“右端”会在数据中滑动,从而高效地检查和更新相关的结果。原创 2025-03-26 21:13:18 · 858 阅读 · 0 评论