基本算法
SherlckOuO
这个人真的很懒,什么都没写
展开
-
位运算+快速幂
位运算求快速幂 1.一般求幂 int pow1(int a,int b){ int r=1; while(b--) r*=a; return r; } 2.快速求幂 int pow2(int a,int b){ int r=1,base=a; while(b!=0){ if(b%2) r*=base; base*=base; b/=2...原创 2019-08-06 10:41:30 · 518 阅读 · 0 评论 -
二进制状态压缩
二进制状态压缩,即将一个长度为m的bool数组用一个m位的二进制数来表示和储存 操作 运算 取出整数n在二进制表示下的第k位 (n>>k)&1 取出整数n在二进制表示下的第0~k-1位(后 k 位) n&((1<<k)-1) 取出整数n在二进制表示下的第k位取反 n xor (1<<k) 取出整数n在二进制表示下的第k...原创 2019-08-06 10:49:05 · 209 阅读 · 0 评论 -
算法竞赛指南———打卡 0x03 前缀和与差分
先说下基本知识 前缀和 一维前缀和 如果我给你一串长度为n的数列a1,a2,a3…an,再给出m个询问,每次询问给出L,R两个数,要求给出区间[L,R]里的数的和,你会怎么做,若是没有了解过前缀和的人看到这道题的想法可能是对于m次询问,我每次都遍历一遍它给的区间,计算出答案,这样子的方法固然没错,但是其时间复杂度达到了O(n*m),如果数据量稍微大一点就有可能超时,而我们如果使用前缀和的方法来...原创 2019-08-07 18:13:10 · 151 阅读 · 0 评论 -
洛谷 P1325 雷达安装 贪心
**- 将问题转化为区间覆盖问题 此题求的是需要多少个头尾不相交的区间 贪心策略:按区间的左端点排序,若i的左端点与i-1的右端点不相交(在精度范围内)就增加一个区间** #include <iostream> #include <cmath> #include <algorithm> using namespace std; int n, r; typ...原创 2019-08-24 11:21:39 · 237 阅读 · 0 评论 -
并查集与最小生成树 模板
"在计算机科学中,并查集是一种树型的数据结构,用于处理一些不交集(Disjoint Sets)的合并及查询问题。有一个联合-查找算法(union-find algorithm)定义了两个用于此数据结构的操作: Find:确定元素属于哪一个子集。它可以被用来确定两个元素是否属于同一子集。 Union:将两个子集合并成同一个集合。 由于支持这两种操作,一个不相交集也常被称为联合-查找数据结构(unio...原创 2019-08-18 11:43:41 · 95 阅读 · 0 评论 -
二分答案 二分查找
二分答案 大佬是这样解释的☟ 原博客 以下添加了一些个人理解 1.使用场景 二分答案一般使用在求解符合条件的最小值或者最大值上面,当我们遇到这两个问题的时候,一般都可以使用二分答案来解决问题。(我觉得这段讲的不是很好) 条件:所求的答案具有单调性,可以枚举答案,能判断答案的可行性 特征:①求xxx最大值最小 ② 求xxx最小值最大.③ 使最近的距离最大 etc 2.什么是二分...原创 2019-08-26 17:45:02 · 270 阅读 · 0 评论 -
ACM 最小生成树 Kruskal Prim 算法模板
定义: 求最小生成树,有两种算法。一种是 Prim算法 ,另一种是Kruskal算法。 你们可以先看下这个最小生成树(Kruskal(克鲁斯卡尔)和Prim(普里姆))算法动画演示 看了都说好 嘻嘻 先讲一种比较简单的————Kruskal算法 贪心+并查集 #include <iostream> #include <algorithm> using namesp...原创 2019-09-08 23:01:04 · 245 阅读 · 3 评论 -
单调栈算法 Largest Rectangle in a Histogram
今天学了一下单调栈算法,给大伙分享下心得。 定义: 单调栈,顾名思义,是栈内元素保持一定单调性(单调递增或单调递减)的栈。这里的单调递增或递减是指的从栈顶到栈底单调递增或递减。既然是栈,就满足后进先出的特点。与之相对应的是单调队列。 我的理解是将入栈元素按照某种单调顺序排列,在遇到逆序的时候将栈顶元素弹出,直到栈为空。 然后看一看例题:Largest Rectangle in a Histog...原创 2019-09-13 22:03:24 · 193 阅读 · 0 评论 -
字符串哈希 模板
最近看了下字符串哈希的算法,学习了大佬的博客,这里小结一下。 顺便附上大佬博客的链接,方便日后回顾。 字符串哈希函数总结 wiki oi—字符串哈希 如何解决哈希冲突—暴雪的哈希算法 哈希: 我的理解是将字符当作某一进制的数来看,这样相同的字符串就会有一样的值,不相同的字符串的值就不同。但值得注意的是这个进制必须大于128,而且为减少哈希冲突,需要构建不同的哈希函数。 记录下我学的在竞赛中比...原创 2019-10-07 19:19:10 · 235 阅读 · 0 评论