数据结构和算法
文章平均质量分 73
数据结构和算法
7个七
这个作者很懒,什么都没留下…
展开
-
算法高级部分--并查集:方块栈(POJ1988)
贝西正在玩游戏,方块编号为1~N(1原创 2022-09-18 19:08:48 · 936 阅读 · 0 评论 -
算法高级部分--并查集
对并查集的理解主要用于解决一些**元素分组的问题**比如可以求图的连通分支数。它是管理一系列**不相交**的集合,并支持两种操作:合并(Union):把两个不相交的集合合并为一个集合。查询(Find):查询两个元素是否在同一个集合中。原创 2022-09-16 19:05:16 · 511 阅读 · 0 评论 -
算法不能盲目刷!!算法题组(持续更新)
辅导了几年的noip,自己平常也刷刷算法,最大的心得就是每一个算法的解法都是曾记无数个小题的集合,所以算法是不能盲目刷,最高效的方法就是按照专题学习,从0开始,查漏补缺,原创 2022-07-31 19:17:02 · 111 阅读 · 0 评论 -
高精度算法(二)
上文:高精度算法和高精度算法—加法计算高精度算法--减法计算1.位数相同无借位2.位数不同无借位3.位数不一同可能借位我们还是由浅入深,逐步推进1.位数相同无借位思路数据处理:1.用字符数组存储高精度数计算:1.和加法类似,遍历字符数组,转化为数字后进行相减2.如果出现类似结果为00000100的情况,还要处理前缀的0代码实现:#include<iostream>#include<cstring>using namespace std;int main()原创 2021-10-10 19:18:20 · 237 阅读 · 0 评论 -
高精度算法
高精度算法高精度数是什么?高精度数的存储高精度数的输出合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入高精度数是什么?高精度俗称大数,大指的不是数值大,不但几千亿几百亿是高精度数,小数点几百位或者更多位也是高精度数。高精度数的存储我们原创 2021-09-17 18:44:45 · 338 阅读 · 0 评论 -
算法学习--看完彻底搞定n皇后
n皇后1.问题引入2.万丈高楼平地起1.全排列思路2.预处理3.解决全排列问题2.n皇后问题的解决1.问题引入n-皇后问题是指将 n 个皇后放在 n∗n 的国际象棋棋盘上,使得皇后不能相互攻击到,即任意两个皇后都不能处于同一行、同一列或同一斜线上。现在给定整数n,请你输出所有的满足条件的棋子摆法。例如下面是一个八皇后的摆法2.万丈高楼平地起首先先了解一个全排列问题。我们把1~n这n个整数按某个顺序摆放的结果称为这n个整数的排列。全排列指的是这n个整数能形成的所有排列。例如1、2、3这3个数字全原创 2021-05-13 16:30:41 · 187 阅读 · 0 评论 -
算法学习--分治和递归
分治的引入首先先来看一个经典的问题:在16个硬币中有1个假币,假币的重量比较轻,现在有一个天平,天平上两端可以放任意硬币请问怎么样能够快速找出那个假币?小白思维:随便找一个硬币放天平一遍,其余15个按个放在天平右边,则最多15次能找到假币更快捷的思维:把16个硬币找假币的问题 简称为16问题将硬币分为2组,即问题为在2组每组为8枚硬币中找出轻的那组 即变为8问题将8枚硬币再分为2组,每组4个,则可以找到轻的那组,即可以划分为4问题同样的步骤,上述问题划分为2问题比较得出结果。共计4次找原创 2021-05-13 10:40:30 · 153 阅读 · 0 评论 -
算法学习--散列
算法学习--散列1.散列的引入2.上述问题的代码部分3.散列函数4.冲突的解决5. 字符串hash初步1.散列的引入首先先来看一个简单的问题:给出N个整数,在给出M个整数,问这些M个整数中有那些数在N个整数中出现过?例如N={2,4,5,6,9} M={1 4 6 8 10} 输出:4 6最直观的思想便是定义数组N,遍历M的每一个元素时和数组N中的元素挨个比较,相等则输出。上述算法时间复杂度为O(NM),当N和M很大时,就会无法承受不妨,采取空间换时间,定义一个bool型的数组hasht原创 2021-05-12 12:17:15 · 107 阅读 · 0 评论 -
数据结构(c/c++):3.线性表之静态链表代码实现
1.背景在上古时期,Basic,Fortan横行的年代,链表中,由于没有指针的存在,人们利用数组来代替指针。所以静态链表是一种用数组描述的链表。2.实现1.结点定义typedef struct{ int data; int next;//下一个结点的数组下标}node,StaticLinklist[MAXSIZE];2.静态链表初始化首先定义一个大小为MAXSIZE的结构体数组...原创 2020-04-20 14:32:39 · 266 阅读 · 0 评论 -
数据结构(c/c++):2.线性表之动态链表代码实现
1.结点定义//单链表结点typedef struct LNode{ int data;//存放数据 struct LNode *next;//指向后继续结点的指针}LNode;//双链表结点typedef struct DLNode{ int data; struct DLNode *prior;//前驱结点 struct DLNode *next;//后继结点 }DLNo...原创 2020-04-17 20:44:29 · 162 阅读 · 0 评论 -
数据结构(c/c++):1.线性表之顺序表代码实现
结构体:typedef struct{ElemType data[maxSize];int length;}Sqlist;顺序表的操作主要为插入和删除,这两个理解了其他基本操作也没就没什么问题了插入:x为待插元素,p为待插位置插入思想:1.先判断插的位置合不合理,能不能插(代码中p>L.length而不是length-1是为了可以在线性表末插入,L.length==m...原创 2020-04-09 20:45:14 · 295 阅读 · 0 评论