![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
基础算法
文章平均质量分 85
流苏贺风
这个作者很懒,什么都没留下…
展开
-
排序算法和妙用
排序算法和妙用前言一,归并排序1,基础简述2,简单扩展二,快速排序1,基础简述2,简单扩展三,基数排序(radix sort)前言在2020初学排序就把我差点劝退信竞,经历了很多很多,两年之后的今天,我才能熟练的掌握这貌似简单的基础算法排序也算是计算机科学最经典的问题了,在这一部分我们主要介绍静态排序,不过其中思想在后面很多地方我们都有用到一,归并排序1,基础简述递归处理左右区间,使得左右区间有序(分治的思想)双指针同步遍历左右区间,把两个有序数组合并到辅助数组(这一步我们可以原创 2022-04-07 20:59:08 · 340 阅读 · 0 评论 -
倍增算法应用
倍增算法一,概述二,基础应用三,实际例子0,趣味知识1, 倍增+最短路2,倍增优化DP一,概述倍增法(英语:binary lifting),顾名思义就是翻倍。它能够使线性的处理转化为对数级的处理,大大地优化时间复杂度。基于使得所需区间由2的整数幂拼凑而成二,基础应用正序预处理+倒叙拼凑型1,预处理f[i][j]=f[i−1][f[i−1][j]]+...f[i][j]=f[i-1][f[i-1][j]]+...f[i][j]=f[i−1][f[i−1][j]]+...,与一种Dp类似2,原创 2022-04-06 21:58:59 · 1377 阅读 · 0 评论 -
前缀和和差分的思想
前缀和和差分的思考一,前缀和一,前缀和新定义性: 可以对需要前缀和的条件和数目进行取舍if (...) a[i]= a[i-1] + ..叠加性:在有序的数组标的前提下,二分就能取得第k大的数,注意和其他计数的结合和的值...原创 2021-12-09 17:59:27 · 2156 阅读 · 0 评论 -
二分和三分
二分原创 2021-12-04 21:40:44 · 337 阅读 · 0 评论 -
贪心的原理和简单应用
贪心的原理和简单应用一,贪心策略的证明二,线段类贪心1,区间选点2,最大不相交区间数目3,区间分组4,区间覆盖一,贪心策略的证明1,微扰,用于基于排序的贪心2,范围放缩,证明范围的大小改变,不会引起结果变差3,决策包容,这一步的决策不会舍去后面可能更优的方案4,数学归纳5,可行解和最优解的不等关系二,线段类贪心1,区间选点选择最少的点,使之覆盖所有的区间做法:按照区间右端点排序,判断当前区间可否满足当前选点,否则开辟新的区间选点2,最大不相交区间数目给定一系列区间,判断在不重叠原创 2021-10-18 21:19:08 · 245 阅读 · 0 评论 -
基础算法之——离散化,区间合并,双指针
离散化,区间合并,双指针一,离散化1,原理:2,要素:3,实现11,离散化预处理一,离散化1,原理:大数以相对大小为key,映射到下标为很小的位置,依靠相对位置进行维护手段:以相对位置为依据进行哈希2,要素:a[M]a[M]a[M],对离散化的大数进行各种操作alls[M]alls[M]alls[M] 存放本来的所有大数,需要找到大数对应的小数坐标的时候就在这个数组里二分他的相对位置3,实现11,离散化预处理读入所有的大数,排序去重...原创 2021-09-10 21:07:37 · 235 阅读 · 0 评论 -
二进制,位运算,快速幂
二进制位运算一,前言二,取整运算三,七种位运算1,&:与运算,遇0则02,|: 或运算,遇1则1。3,~:取反,0变1,1变04,^:异或运算5, <<<<<< :算数左移,低位填充0,高位舍弃6, >>>>>> :算数右移,高位补符号位,符号位为0就补0,为1补1,同时舍弃低位7,>>>>>>>>> :无符号右移。高位不管符号位是0还是1,都是补0四,位运算应用1,有关快原创 2021-08-07 18:05:20 · 665 阅读 · 0 评论