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