
算法模板
文章平均质量分 93
B0b_Wang
这个作者很懒,什么都没留下…
展开
-
二次剩余学习笔记
若∃x\exists x∃x,使得x2≡nmodpx2≡nmodp,则称nnn为二次剩余,否则为二次非剩余。原创 2023-08-31 17:33:41 · 455 阅读 · 0 评论 -
kruskal重构树
kruskal重构树建立在kruskal最小生成树算法上,假设在做kruskal最小生成树时将要加边xyz(x,y,z)xyz,即连接结点xxx与结点yyy,边权为zzz,则建立一个新的点,分别连向xxx和yyy,点权为zzz,同时将该点设置为xxx与yyy的代表结点(很熟悉对不对?其实就是并查集!以此类推,直至做出最小生成树。原创 2023-04-13 00:01:05 · 402 阅读 · 0 评论 -
线段树优化建边
浅谈线段树优化建边引入思想流程建一颗线段树连边处理完整代码总结 引入 例题:车站分级 这道题乍一看就能想到等级低的向等级高的连边,即两停靠站之间的站点向两车站连边,最后跑一遍拓扑排序找出最大值即为答案。 以题目样例为例,假设火车经过站点如下,其中蓝色代表停靠,红色代表不停靠: 也就是说,2的等级一定比1、3、5和6低,4的等级一定比1、3、5和6低,建边如下: 拓扑排序出来就是两层,答案为2....原创 2019-10-10 09:11:05 · 525 阅读 · 0 评论 -
从玉蟾宫到悬线法
从玉蟾宫到悬线法例题方法 例题 传送门 题目大意即求01矩阵中最大的全1矩阵。 方法 暴力枚举 枚举左上角的端点和右下角的端点,前缀和判断是否全是1,。复杂度O(m2n2)O(m^2n^2)O(m2n2) 二分答案 枚举矩形的长,二分枚举矩形的宽,判断矩形中是否有符合条件的子矩阵。复杂度O(m2nlogn)O(m^2n\log n)O(m2nlogn) 悬线法 正解方法。设蓝色是1,...原创 2019-10-08 21:57:06 · 145 阅读 · 0 评论 -
算法笔记——数学相关
算法笔记——数学相关高精度乘法逆元排列组合二项式定理质数的判定和应用约数拓展欧几里得矩阵相关快速乘和快速幂欧拉函数欧拉定理及费马小定理拓展欧拉定理中国剩余定理拓展中国剩余定理卢卡斯定理拓展卢卡斯定理狄利克雷卷积莫比乌斯函数莫比乌斯反演大步小步算法(BSGS)拓展大步小步算法杜教筛快速傅里叶变换(fft)快速数论变换(ntt)*斯特林数相关算法 高精度 核心思想:字符串模拟数组,实现大整数(大于...原创 2019-08-01 16:47:55 · 463 阅读 · 2 评论 -
Link Cut Tree模板
待写原创 2019-07-25 11:55:10 · 171 阅读 · 1 评论 -
树链剖分
待写原创 2019-07-25 11:54:24 · 129 阅读 · 0 评论 -
陌上花开——浅谈CDQ分治
陌上花开——浅谈CDQ分治什么是CDQ分治大体思路例题解法完整代码 什么是CDQ分治 CDQ分治,就是一种分治思想。可能度娘比我解释地更清楚。主要用来求偏序。 大体思路 如图所示: 将一个区间[l,r][l,r][l,r]一直向下二分为[l,mid][l,mid][l,mid]和[mid+1,r][mid+1,r][mid+1,r]; 返回时分别处理区间[l,mid][l,mid][l,mid...原创 2019-07-11 14:55:16 · 237 阅读 · 2 评论 -
2-sat思想及入门
2-sat思想及入门什么是2-sat例题分析建边判断有解输出方案完整代码 什么是2-sat 要知道2-sat是什么,我们先要知道什么是适定性(Satisfiability)问题,适,就是合适,定,就是确定,适定性问题通俗的说就是确定是否可以满足所有的条件?或者说就是确定一个满足所有条件的方案。取英文的前三个字母,简称sat问题。 通俗的sat问题表述一般是这样的: 有很多个集合,每个集合里面有若...原创 2019-07-14 15:20:56 · 1252 阅读 · 2 评论 -
后缀数组求法(搬运)
请参看@自为风月马前卒的博客,本博客只是为了帮助我自己理解。 后缀数组的定义:以aabaaaabaabaaaabaabaaaab为例: 它的后缀数组有: 1.aabaaaabaabaaaabaabaaaab; 2.abaaaababaaaababaaaab; 3.baaaabbaaaabbaaaab; 4.aaaabaaaabaaaab; 5.aaabaaabaaab; 6.aabaabaab; ...转载 2019-06-12 08:39:29 · 255 阅读 · 1 评论 -
Treap平衡树
浅谈Treap平衡树先从二叉查找树谈起Treap平衡树的旋转操作定义建立新节点右旋 先从二叉查找树谈起 二叉查找树可以用来在随机数据中高效率地查找一个数。具有以下性质: (1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值; (2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值; (3)左、右子树也分别为二叉排序树; (4)平均的时间复杂度为O(log n); (摘自360百科...原创 2019-06-05 17:48:28 · 224 阅读 · 2 评论 -
倍增求lca
倍增求lca什么是lcalca怎么求流程 什么是lca lca,即 最近公共祖先。如上图所示,节点4和节点5的lca为节点2,节点5和节点6的lca为节点1。是不是很好理解呢? lca怎么求 1.最简单的方法则是“暴力”。将深度大的节点向上走到与深度小的节点的深度相同(如节点6与节点5);之后两个节点一起向上跳,知道它们所在的节点相同(节点1)。 但是这种做法的时间复杂度太高了 QAQ,所以并不...原创 2019-03-22 22:03:13 · 132 阅读 · 3 评论