随笔分类 -  算法原理

 
redis:一句命令经过了怎样的旅程
摘要:背景 在字节跳动实习,因为要做新人串讲,选了这个题目,飞书搬过来标题什么的都没有了,可能有点不够直观 1.启动服务器 示例:(启动之后的效果) 1.1 初始化struct redisServer结构 主要会执行一个initServerConfig函数进行 redisServer的初始化,包括默认配置 阅读全文
posted @ 2020-10-26 22:35 Lis~ 阅读(119) 评论(0) 推荐(0)
Redis命令大全
摘要:string 重点!!: bitmap: 默认一个字节的大小,根据命令来进行扩容 bitcount:计算bitmap里面为1的个数 bitop:将两个key进行或运算得出结果给新的key赋值 bitpos:在数组里面找到范围内的第一个为0或者1的位置,返回位置 getbit:得到指定位置的数值,是0 阅读全文
posted @ 2020-10-06 17:17 Lis~ 阅读(314) 评论(0) 推荐(0)
NoSql数据库redis之hash篇
摘要:使用 hash的话意思是,redis的一个key对应一个hash,然后hash里面再存储了很多种数据 hget : 得到对应hash的某个字段的值 hset:设置hash里面某个字段的值 hmset : 批量设置hash里面的字段值 hmget: 批量得到hash里面的字段值 hgetall: 得到 阅读全文
posted @ 2020-10-06 15:16 Lis~ 阅读(275) 评论(0) 推荐(0)
集群-CAP原则 AKF原则 raft算法
摘要:CAP准则 一致性(Consistency)、可用性(Availability)、分区容错性(Partition tolerance) 一致性:一个集群里,无论从哪台机器访问,数据都是一致的 可用性:在可用节点上,能够正常提供服务,一般指的不会出现大量超时,错误等问题 分区容错性:集群中的节点出现宕 阅读全文
posted @ 2020-10-05 21:31 Lis~ 阅读(1272) 评论(0) 推荐(1)
浅谈C++智能指针
摘要:操作内存 创建内存:new 过程:用new创建内存,如果成功的话那么直接分配,然后调用对象的构造函数,如果分配不够,那么先去调用用户自己写的set_new_handler函数,一般这个函数是用来释放些内存,然后使多点内存,然后再去申请,如果还是不行,再调用该函数,但是一般就是用个标记变量释放第一次, 阅读全文
posted @ 2020-04-05 21:56 Lis~ 阅读(259) 评论(0) 推荐(0)
浅谈C++编译过程
摘要:概述 总共三步走,预编译,编译,链接,接下来会讲具体做了啥事儿和场景 预编译 预编译也就是在编译之前做的一个事儿,这里会把一些预编译指令的要求给执行然后替换,预编译指令有 #include #define #ifdef #ifndef #endif #elif #else 预编译的过程就是相当于把预 阅读全文
posted @ 2020-03-25 23:01 Lis~ 阅读(242) 评论(0) 推荐(0)
C++ 浅谈virtual
摘要:virtual有两种用途 1,虚函数 2,虚继承 虚函数 虚函数出来的主要目的是实现多态,虚函数的组成有 “虚函数指针” “虚函数表” 编译器在编译的过程中,如果检测到类里面有virtual修饰的函数,那么就会生成一个虚函数表,然后实例化对象的时候生成一个虚函数指针,对象可以通过虚函数指针来对虚函数 阅读全文
posted @ 2020-03-16 16:31 Lis~ 阅读(282) 评论(0) 推荐(0)
最短路径树
摘要:一.概述 首先我们先搞清楚什么最短路径树,我们这里可以引申三个概念,最短路径,最短路径树,最小生成树 最短路径:最短路径就是指两点之间的最短距离,通常算法有dij,spfa,floyed 最短路径树:概念就是以一个节点为根,然后根节点到其他所有点的距离最短,然后形成了一棵树,把不必要的边删除,其实我 阅读全文
posted @ 2019-08-16 14:36 Lis~ 阅读(8626) 评论(0) 推荐(4)
HDU 4812 (点分治)
摘要:题目:https://vjudge.net/contest/307753#problem/E 题意:给你一颗树,树上每个点都有个权值,现在问你是否存在 一条路径的乘积 mod 1e6+3 等于 k的路径,如果有找到字典序最小的方案 思路,树上路径~点分治 我们能知道每条路径的值,现在我们可以转化的问 阅读全文
posted @ 2019-08-15 17:29 Lis~ 阅读(395) 评论(0) 推荐(1)
2019 牛客暑期多校 第八场 A All-one Matrices (单调栈+前缀和)
摘要:题目:https://ac.nowcoder.com/acm/contest/888/A 题意:找全1矩阵的个数,并且这个全1矩阵不被其他全1矩阵包含 思路:这里引用付队说的话 -> { 这类问题,一般解决就是两个方向: A:压缩一维,即枚举上下边界,然后复杂度O(N^3); B:广告牌问题,即枚举 阅读全文
posted @ 2019-08-11 14:58 Lis~ 阅读(244) 评论(0) 推荐(0)
BSGS算法总结
摘要:BSGS算法专用于求 a^x=b mod p 只有当 a,p互质时才能求出解,主要思想是 我把x=i*t-j , t=sqrt(p) ,那么j的范围就是 [0,t-1] -> a^(i*t-j) = b mod p -> a^(i*t) = b*(a^j) mod p 我们把j=[0,t-1] 都插 阅读全文
posted @ 2019-08-02 18:36 Lis~ 阅读(222) 评论(0) 推荐(0)
扫描线总结
摘要:扫描线 扫描线算法用处很多,一般是求矩形在二维数轴上的一些求解,现在来讲下最基础的一种,矩形面积并 首先我们要知道扫描线的执行过程是怎么样的,他顾名思义就是一条直线从x或者y轴往正方向扫 先看图 首先我们看原图三个矩形在这相交,但是重合面积我们不进行运算 然后我们有一条扫描线平行于x轴一直向上扫 我 阅读全文
posted @ 2019-07-31 21:57 Lis~ 阅读(486) 评论(0) 推荐(0)
二维离散化总结
摘要:二维离散化 普通的离散化就是一根x轴按顺序离散化成 1-n,比如 505,654,100000 ,3565464,这四个点,我们离散化的话就变成了1,2,3,4 一根x轴的我们只要先后顺序即可,但是二维的我们还需要知道他们x,y之间的联系,所以我们需要分情况来讨论 1,如果两个坐标横坐标连续,那么我 阅读全文
posted @ 2019-07-31 21:56 Lis~ 阅读(774) 评论(0) 推荐(0)
欧拉函数入门理解
摘要:含义 欧拉函数:phi(n) 1-n这个区间里面和n互质的个数有多少个 公式 先化解出最简质因子乘式 n=p1^a1*p2*a2.....*px^ax 那么就是公式就是 phi(n)=n*((p1-1)/p1)*((p2-1)/p2)....((px-1)/px)=n*(1-1/p1)*(1-1/p 阅读全文
posted @ 2019-06-11 16:53 Lis~ 阅读(364) 评论(0) 推荐(0)
AcWing ST算法(区间求最值)打卡
摘要:一,介绍 ST算法是一个用倍增来求区间最值的算法,倍增是一个与二分类似的思想的一个东西,倍增简而言之也就是区间长度按1,2,4,8..... 我们先用nlog(n)的复杂度打出一个最大值表,后面我们可以通过O(1)的 复杂度来直接得出最大值 二,思路 我们用到F[i][j] 这个含义代表 [i,i+ 阅读全文
posted @ 2019-05-19 16:54 Lis~ 阅读(194) 评论(0) 推荐(0)
bfs两种记录路径方法
摘要:#include<cstdio> #include<queue> using namespace std; struct sss { int x,y; }ans[6][6]; int map[6][6]; int flag[6][6]; int dec[4][2]={1,0,0,1,-1,0,0,- 阅读全文
posted @ 2019-03-21 16:39 Lis~ 阅读(1994) 评论(0) 推荐(0)
数位DP详解
摘要:算法使用范围 在一个区间里面求有多少个满足题目所给的约束条件的数,约束条件必须与数自身的属性有关 下面用kuangbin数位dp的题来介绍 例题 不要62 题意:在一个区间里面求出有多少个不含4和62的数 做法:平常我们的做法肯定是从L枚举到R,然后数位上一个一个的判断,但是如果是范围过大的话我们不 阅读全文
posted @ 2019-02-16 15:30 Lis~ 阅读(1053) 评论(0) 推荐(0)
背包前三讲
摘要:https://blog.csdn.net/yoer77/article/details/70943462 一,01背包 描述:自己背了一个背包,有一个容量,面前有n件物品,每件物品有一个价值一个重量,然后用这个背包去装总价值最多的物品 思路:考虑所有的状态,去遍历每一件物品,然后枚举所有的容量从0 阅读全文
posted @ 2018-10-14 18:16 Lis~ 阅读(145) 评论(0) 推荐(0)
牛客国庆集训派对Day5 数论之神
摘要:题目描述 终于活成了自己讨厌的样子。 这是她们都还没长大的时候发生的故事。那个时候,栗子米也不需要为了所谓的爱情苦恼。 她们可以在夏日的午后,花大把的时间去研究生活中一些琐碎而有趣的事情,比如数论。 有一天西柚柚问了栗子米一个题,她想知道中有多少不同的数,这些不同的数字里面第k大的是多少。 输入描述 阅读全文
posted @ 2018-10-05 15:10 Lis~ 阅读(203) 评论(0) 推荐(1)
唯一分解定理入门讲解
摘要:唯一分解定理 一个数n肯定能被分解成 n=p1^a1 * p2^a2 . . .*pn^an 因为一个数肯定是由合数和质数构成的,合数又可以分解成质数和合数,最后递归下去就会变成质数的乘积 如 36 -〉 4*9 或者 6*6 -〉 2*3*2*3 -〉2^2*3^2 最后化成了质数相乘的形式 好, 阅读全文
posted @ 2018-09-23 14:43 Lis~ 阅读(4838) 评论(0) 推荐(1)