摘要:
主要内容数据结构: 1.二叉搜索树 一棵二叉树,对于包括根节点在内的节点,所有该节点左儿子比此节点小,所有该节点右儿子比该节点大,(感觉好像二分...) 每个节点包含一个指向父亲的指针,和两个指向儿子的指针。如果没有则为空。每个节点还包含一个key值,代表他本身这个点的权值 常用操作: 插入一个数, 阅读全文
摘要:
今天主要用来铺路,打基础 枚举 没什么具体算法讲究,但要考虑更优的暴力枚举方法,例如回文质数,有以下几种思路: 1.挨个枚举自然数,再一起判断是否是回文数和质数,然而一看就不是最优 2.先枚举质数再判断回文,但质数显然要比回文数要多,较下一种慢 3.先枚举回文数再判质: (1).分别开数组,把每个元 阅读全文
摘要:
堆就是一堆数据(百度百科给的是一棵树的数组对象),可以对它进行相应的操作,比如排序 二叉堆就是把上一行括号中的“树”改成“二叉树” 优先队列和二叉堆有着密不可分的关系 优先队列的实现就是二叉堆,用它可以进行非常快速的排序, 基础模板: (排最大序列,没用万用头) 阅读全文
摘要:
并查集,在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中。 模板题: 第一行包含两个整数N、M,表示共有N个元素和M个操作。 接下来M行,每行包含三个整数Zi、Xi、Yi 当Zi=1 阅读全文
摘要:
最小生成树是在n个点的图中选n-1条边构成树(每个点都满足能够互相达到,即直接连接或间接) 整一整kruskal 模板: 阅读全文
摘要:
一本通网站上不去,截图为证 还是要整博客的。。。 目前学了FloydO(n3)和dijkstra算法O(n2) Floyd是把每个点都遍历一遍,而后者只针对单个起点所以前者慢,但前者可以处理负边权(边的长度)。 下面是一道例题(数据较小用了Floyd): 中山路上有n(n<=100)家店,每家店的坐 阅读全文
摘要:
本想用深搜水题,然而几乎所有的题都是最少步数,所以广搜更方便 例如 【题目描述】 当你站在一个迷宫里的时候,往往会被错综复杂的道路弄得失去方向感,如果你能得到迷宫地图,事情就会变得非常简单。 假设你已经得到了一个n*m的迷宫的图纸,请你找出从起点到出口的最短路。 【输入】 第一行是两个整数n和m(1 阅读全文
摘要:
话不多说,练习搜索 其中两个题比较典型,拿出来讲讲 1.迷宫 题意较简单,n*m迷宫中,从(x,y)到(a,b)有几条路 代码奉上(这题是广搜?用的深搜): 这题深搜易敲,思路简单 2._GC滑迷宫(跟某龚姓网友没有半点关系!(眨眼眨眼)) 以下复制: 题目背景 _GC买了一双蔡徐坤一代。(重点,记 阅读全文
摘要:
今天整一整高斯消元的模板,正经的 高斯消元主要用于解n元一次线性方程组与判断是否有解 主要思想? 就是高斯消元啊 主要思想是理想状态下消为每行除最后一项外只有一个1,并且每行位置互异,具体看下面。 这里代码的目的主要是求方程的解 代码: point: 对于计算每行“i”,i即表示行数,即对于每行进行 阅读全文
摘要:
两道模板题,思路与算法却是相当经典。 先说最开始做的行列式求值,题目大致为给一个10*10的行列式,求其值 具体思路(一开始看到题我的思路): 1.暴算,把每种可能组合试一遍,求逆序数,做相应加减运算,一看就知道不是正解。 2.暴算2.0 用递归和代数余子式计算,但同样需计算逆序数。 3.一看就是知 阅读全文