![](https://img-blog.csdnimg.cn/20190927151101105.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
基础算法笔记系列(持续更新中)
文章平均质量分 74
之前写的博客太散乱了,没有中心主题,所以开一个系列,持续更新。
计划更新:高精度~~位运算~~进值~~递归递推~~前缀和差分~~二分~~排序~~贪心~~倍增~~离散化。
是孤衾呀
加油加油
展开
-
算法笔记(6)分治法和回溯法
目录前言引入分治法分治模板二分回溯法回溯模板回溯求解组合数子集问题二叉树的递归(回溯)创建前言引入我们国家有着广阔的土地和众多的人口,为了方便管理,分为了很多省份,每个省又分为很多的市,每个市又分为很多的县,每个县又分为很多的镇,每个镇又分为很多的社区.......然后呢,现在,根据小道消息,某某人感染了病毒,但是我们都不认识他,上级阶层的领导知道了这个消息,他想要快速且高效的知道这个人是谁,所以,他就把这个任务交给每个省的省长,省长又交给市长,市长又交给县长原创 2022-04-23 01:37:07 · 1396 阅读 · 1 评论 -
算法笔记(5)前缀和与差分
引入对于一组数据,假设10个数为1 3 2 4 6 5 8 7 10 9要求我们求出第4个到第6个数的和,我们很容易想到以下代码int sum=0;for(int i=4;i<=6;i++) { sum+=a[i];}cout<<sum<<endl;如果再次要求,求出第4个数到第8个数之间的和,那简单嘛,再遍历一次。int sum=0;for(int i=4;i<=8;i++) { sum+=a[i];}cout原创 2022-04-22 19:01:20 · 175 阅读 · 0 评论 -
算法笔记(4)递归和递推
前言从递归开始,可以说才真正迈入算法的大门。递归也是最经典的算法之一递归程序调用自身的编程技巧称为递归( recursion)。递归作为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或间接调用自身的一种方法,它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。这是一个家喻户晓的故事,同时也是递归的典型例子:从前有座山,山里有座庙,庙里有个老和尚在原创 2022-04-21 16:26:51 · 413 阅读 · 0 评论 -
算法笔记(3)进制
进制也就是进位计数制,是人为定义的带进位的计数方法(有不带进位的计数方法,比如原始的结绳计数法,唱票时常用的“正”字计数法,以及类似的tally mark计数)。 对于任何一种进制---X进制,就表示每一位上的数运算时都是逢X进一位。十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。目录十进制二进制进制的转化十进制我们生活中,基本上都是十进制,逢十进一,就像10,就是十进制,表示“十”。由于人类解剖学的特点,双手共有十根手指,故在..原创 2022-04-20 21:46:17 · 84 阅读 · 0 评论 -
算法笔记(2):位运算
前言位运算涉及进制问题,其中最常用的即二进制。由于计算机机器,只认识二进制代码,像我们平时打的C代码,是会在编译过程中转化为相应的二进制代码,但如果我们本身就利用位运算,直接打出关于二进制的代码,这会节约很多时间,因此位运算尤为重要。基础位运算基础位运算介绍按位取与:& 或者and(有0则0)按位取或:| 或者o'r(有1则1)按位异或:^ 或者xor (相同为0,不同为1)非:~或者not (取反,0变1,1变0)左移:<<(做乘法)右移:&g原创 2022-03-18 18:20:16 · 119 阅读 · 0 评论 -
算法笔记(1):高精度
目录前言高精度加法高精度乘法高精度减法高精度除法前言从大学开始,已经过了一学期了,从某种意义上说,也就是每天随机刷刷题,看看题解代码,完全处于一种毫无目的性的学习,学的特别特别散。所以就准备开一个系列来整理知识点。高精度加法code:string HighProAdd(string num1,string num2) { if(num1.size()<num2.size()) swap(num1,num2); int a[100000],b[1原创 2022-03-17 11:33:05 · 556 阅读 · 0 评论