随笔分类 - IO生涯
摘要:莫队算法 传说中能解决一切区间问题的算法 这个算法是由之前的国家队队长莫涛巨神(%%%)发明的,所以尊称莫队算法。 目前的题型概括为三种:普通莫队,树形莫队以及带修莫队。这里讲普通莫队算法 题目 "P2709 小B的询问" 题目描述 小B有一个序列,包含N个1~K之间的整数。他一共有M个询问,每个询
阅读全文
摘要:其实并查集顾名思义就是有“合并集合”和“查找集合”两种操作的关于数据结构的一种算法。 概述 性质 并查集算法不支持分割一个集合。 算法 用集合中的某个元素来代表这个集合,该元素称为集合的代表元。一个集合内的所有元素组织成以代表元为根的树形结构。对于每一个元素 parent[x]指向x在树形结构上的父
阅读全文
摘要:倍增版LCA lac 即最近公共祖先,u和v最近公共祖先就是两节点公用的祖先中深度最大的 比如 其中 lca(1,2)=4, lca(2,3)=4, lca(3,5)=1, lca(2,5)=4; 如何求LCA? 树上倍增版: 1. 预处理每一个节点的深度 ; 1. 选定两节点; 1. 将深度大的节
阅读全文
摘要:快速幂取模算法详解 1.大数模幂运算的缺陷: 快速幂取模算法的引入是从大数的小数取模的朴素算法的局限性所提出的,在朴素的方法中我们计算一个数比如5^1003%31是非常消耗我们的计算资源的,在整个计算过程中最麻烦的就是我们的5^1003这个过程 缺点1:在我们在之后计算指数的过程中,计算的数字不都拿
阅读全文
摘要:"Sorting Algorithm" ==== Summary There are a lot of sorting algorithms, I have only done on a part of the exercises and tests, and there are a lot of
阅读全文
摘要:一大波概念正在来袭: 作用域与命名空间 相关概念 与命名空间相关的概念有: 声明域(declaration region)—— 声明标识符的区域。如在函数外面声明的全局变量,它的声明域为声明所在的文件。在函数内声明的局部变量,它的声明域为声明所在的代码块(例如整个函数体或整个复合语句)。 潜在作用域
阅读全文
摘要:预习: r=余数 a=被除数 b=除数 c=商 a/b=c........r r=a-(a/b)*b 一、下面的题目你能全做对吗?1.7/4=?2.7/(-4)=?3.7%4=?4.7%(-4)=?5.(-7)/4=?6.(-7)%4=?7.(-7)/(unsigned)4=?答案:1-133-1-
阅读全文
摘要:WordAbbreviation abbreviate / abbreviation abrv academic acad accept / acceptance / accepted acpt access accs accident acdnt accomplish / accomplishme
阅读全文
摘要:#include #include #include using namespace std; struct def1 { int x; int y; } q[3000000]; struct def2 { int len; int x; int y; } val[550]; int dctx[6]= {0,1,0,-1,0},dcty[6]= {0,0,1,0,-1}; int n,...
阅读全文
摘要:算法-求二进制数中1的个数 问题描述 任意给定一个32位无符号整数n,求n的二进制表示中1的个数,比如n = 5(0101)时,返回2,n = 15(1111)时,返回4 这也是一道比较经典的题目了,相信不少人面试的时候可能遇到过这道题吧,下面介绍了几种方法来实现这道题,相信很多人可能见过下面的算法
阅读全文
摘要:STL中make_heap 的接口为: 默认的使用operator< 进行比较。而我们可以自定义comp进行比较,来进行建堆。 其中,两个make_heap所使用的参数,[first,last) 这个区间是半开半闭的。 当我们需要对堆进行存取操作时,我们有函数,pos_heap,push_heap
阅读全文
摘要:tarjan算法讲解。 全网最详细tarjan算法讲解,我不敢说别的。反正其他tarjan算法讲解,我看了半天才看懂。我写的这个,读完一遍,发现原来tarjan这么简单! tarjan算法,一个关于 图的联通性的神奇算法。基于DFS(迪法师)算法,深度优先搜索一张有向图。!注意!是有向图。根据树,堆
阅读全文
摘要:算法(Algorithm)为一个计算的具体步骤,常用于计算、数据处理和自动推理。C++ 算法库(Algorithms library)为 C++ 程序提供了大量可以用来对容器及其它序列进行算法操作的函数。这些组件可以为函数或函数模板,大部份由头文件 <algorithm> 提供,一小部份位于 <nu
阅读全文
摘要:单调队列,顾名思义是指队列内的元素是有序的,队头为当前的最大值(单调递减队列)或最小值(单调递增序列),以单调递减队列为例来看队列的入队和出队操作: 1、入队: 如果当前元素要进队,把当前元素和队尾元素比较,如果当前元素小于队尾元素,那么当前元素直接进队,如果当前元素大于队尾元素,那么队尾出队,将当
阅读全文
摘要:先放代码: 有人问各种const是干什么的?其实在这里,const的作用只是“增加程序可读性”,就是表示“这是一个不可改变的量”。还有人问 是用来干什么的?其实这个与bign a=123;或bign a="1234";有关,就是在定义的时候赋值。为什么用=呢?C++编译器可以自动区别赋值和初始化(构
阅读全文
摘要:/*RMQ算法(ST) 求指定区间最小(大)值*/ #include #include #include using namespace std; int n; int f[100000][20];//f[i][j]表示从第i个数开始,往后数2^j个数中的最值 void init()//初始化f数组 { for(int j=1; (1>n; for(int i=1; i>f[i...
阅读全文
摘要:十三、左偏树(Leftist Tree)树这个数据结构内容真的很多,上一节所讲的二叉堆,其实就是一颗二叉树,这次讲的左偏树(又叫“左翼堆”),也是树。二叉堆是个很不错的数据结构,因为它非常便于理解,而且仅仅用了一个数组,不会造成额外空间的浪费,但它有个缺点,那就是很难合并两个二叉堆,对于“合并”,“
阅读全文
摘要:#include using namespace std; int heap[100010],cnt=0; void put(int x) { cnt++; heap[cnt]=x; int now=cnt; int next=cnt; while(now>1) { next=now/2; if(h
阅读全文

浙公网安备 33010602011771号