![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
YFR718
这个作者很懒,什么都没留下…
展开
-
【算法】搜索入门-BFS
BFS 队列实现 初始时,起点(即1号节点)入队。 每次取出队首元素,从当前元素访问下一层元素(相当于树中子节点),找到可行 的元素后,加入队尾。 重复操作2,直到队列为空。 考虑遍历一棵树所有节点: 采用DFS进行遍历: 1->2->4->2->5->2->1->3->6->3->7->3->1 对于上例: q中元素: 执行操作1: {1} 执行操作2: 取出队首元素1: {},从1扩展找到可行元素加入队尾: {2,3} 执行原创 2020-08-20 20:01:20 · 177 阅读 · 0 评论 -
【算法】搜索入门-DFS
递归 dfs的一个重要内容是递归。 可以理解成自己调用自己的过程。 递归 eg:从前有座山,山里有座庙,庙里有个老和尚在讲故事:从前有座山, 山里有座庙...... 以上便是一个递归的过程,显然如果不做任何要求,那么这个过程会一直 重复下去。 所以必须要有终止条件/边界。 对于上例而言,可以规定到日落时结束讲故事。 注意事项 调用自身 终止条件/边界 回溯 DFS框架 斐波那契数列 对于当前要求解的f(now) now 为1或2,则由题意,返回1即可 now大于2,则返回f(now-1)+f原创 2020-08-20 19:11:40 · 100 阅读 · 1 评论 -
【算法】搜索入门-枚举
枚举 枚举即穷举法。 要求解的答案存在于一个集合中,借助于题目给出的约束条件可以找到这 个集合。 借助于计算机的高性能,便可以从这个集合中逐个枚举,从而找到最终的 答案。 需要注意: 枚举范围: 枚举的边界要设定好 数据规模: 枚举要保证数据规模在时间限制内能够枚举完 枚举方式: 枚举顺序有时会影响时间 [NOIP2001] 一元三次方程 NOIP2011 铺地毯 题意简化: n个矩形铺在平面上,问包含某点的最后给出的矩形编号。 ...原创 2020-08-20 19:04:18 · 307 阅读 · 0 评论 -
【算法】高精度
简述 高精度加法原创 2020-08-18 11:18:00 · 76 阅读 · 0 评论 -
【算法】排序
排序算法的用处 在算法竞赛中,排序算法往往是一个题的切入点,有很多算法的正确性必须基于数据的有序性 在公司招聘的面试中,排序算法考察的频率也是极高的。从各家公司的面经中,可以发现面试官很喜欢让面试者解释并演示某种排序算法 基于以上这两点,虽然排序算法有现成的函数可以直接使用,但是掌握它的实现原理还是很重要的 插入排序 对于已经被排序的序列构建一个有序数列,然后对于未处理的数据,在每次排序的时候对有序数列扫一遍,找到插入的位置,然后把这个位置之后的所有元素向后移一位,把这个位置空出来给当前元素。 实现步骤原创 2020-08-18 10:37:00 · 197 阅读 · 0 评论 -
【算法】二分
def erfen(l,r,precesion): if r-l<precesion : return l mid = (l+r)/2 if f(mid)==0: return mid if f(mid)*f(r)>0: return erfen(l,mid,precesion) else: return erfen(mid,r,precesion) def erfen(l,r,prece.原创 2020-08-18 10:23:16 · 137 阅读 · 0 评论 -
【算法】前缀和 差分
前缀和 差分 支持逆运算的运算都可以前缀和 例如异或xor 应用:区间加 通过上述的两个方法,我们能轻易地处理这两类问题: 数组固定,然后大量询问; 大量做区间加,最后要你给出这个数组。 例题 二维的前缀和 ...原创 2020-08-17 11:50:56 · 128 阅读 · 0 评论 -
【算法】 递归
递归 什么是递归算法呢? 程序调用自身的编程技巧称为递归( recursion)。递归做为一种算法在程序设计 语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种 方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问 题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算, 大大地减少了程序的代码量。 简而言之:大懒支小懒 回溯法 递归的要点 初始状态 目标状态 穷举范围 约束条件 状态恢复 递归代码框架 先判断是否达到目标状态 如果达到,原创 2020-08-17 11:38:17 · 169 阅读 · 0 评论 -
【算法】python 排序
sort()和sorted() L.sort():该函数第一个参数iterable为任意可以迭代的对象,cmp是比较函数,通常为lambda函数,key是用于比较的关键字,reverse表示排序结果是否反转,需要特别注意的是,该函数只适用于列表,而非任意可以迭代的对象。cmp是比较函数,接受两个对象参数 x 和 y,返回 负数(x<y),0(x=y),正数(x>y) sorted():该函数第一个参数iterable为任意可以迭代的对象,cmp是比较函数,通常为lambda函数,key是用于比原创 2020-08-17 10:10:57 · 387 阅读 · 0 评论 -
【算法】位运算
什么是位运算? 程序中的所有数在计算机内存中都是以二进制的形式储存的,位运算是直接对 整数在内存中的二进制位进行操作。比如,与(&&)运算本来是一个逻辑运算符,但整数与整数之间也可以进行与(&)运算。例如, 6的二进制是110, 11的二进制是1011,那么6 & 11的结果就是2,它是二进制对应位进行逻辑运算的结果(0表示False, 1表示True,空位都当0处理): 位运算处理速度非常快。 位与(&)运算 &运算通常用于二进制取位操作,例如一个数 &a原创 2020-08-10 12:51:20 · 373 阅读 · 0 评论 -
【算法】枚举
基础枚举算法 枚举是基于已有知识来猜测答案的一种问题求解策略。 枚举所有可能是问题解的答案并进行判断。 在算法竞赛中,枚举是一种基本的技巧,广泛运用于部分分和对拍。 顺序查找 整数查找 小数枚举 ...原创 2020-08-10 12:46:14 · 76 阅读 · 0 评论 -
【算法】时空分析
时间复杂度 空间复杂度 例题原创 2020-08-10 12:42:58 · 929 阅读 · 0 评论