摘要: 单调栈,即栈内的元素是单调的,运用单调栈可以维护一些有顺序的序列,虽然单调栈理解起来容易,但是运用起来却不是那么容易 单调栈的概念及类型 单调栈内的元素一定是单调的,要么单调递增,要么单调递减。 如果单调栈维护单调递减序列:假如将要入栈的元素比栈顶元素大,那么就将栈顶元素移出栈,然后继续判断将要入栈 阅读全文
posted @ 2019-07-10 10:25 七月流 阅读(410) 评论(0) 推荐(1) 编辑
摘要: 哈希是一种既靠谱又不靠谱的储存,查找方法。哈希更多来讲是一种不可逆性的映射,因此具有很强的对应性,方便了查找的同时,还方便了其他一些奇葩算法操作。 哈希? 哈希,也叫作hash或散列。 若一个数的值是x,那么某一种对应关系f叫做哈希变换,通过哈希变换,就可以由x得到变换后的值f(x),这就叫做哈希。 阅读全文
posted @ 2019-07-06 10:31 七月流 阅读(1173) 评论(0) 推荐(1) 编辑
摘要: 线段树是修改,查找一组数据比较常用的数据类型,相对树状数组来说,线段树更加灵活,可以完美实现单点和区间的查找与修改,甚至可以做到树状数组做不到的区间赋值修改。 线段树及存值方式 线段树不同于树状数组,线段树是一棵真正的树,它具有左子树和右子树,每一个节点存有一个初始序列一个区间内区间和,且两个子节点 阅读全文
posted @ 2019-06-16 17:12 七月流 阅读(405) 评论(3) 推荐(1) 编辑
摘要: 树状数组相比线段树来说比较简单,可以快速的进行区间求和和单点修改,当然,如果利用辅助数组,还可以进行区间修改 浅谈“树状” 这是一颗满二叉树: 只要让所有的节点向右靠近,就得到树状数组的样子 树状数组存值的方式如下,其中nu数组是一段初始序列,t数组是树状数组 根据二叉树每两个节点都有一个父亲节点的 阅读全文
posted @ 2019-06-10 22:30 七月流 阅读(704) 评论(1) 推荐(2) 编辑
摘要: 欧拉定理和扩展欧拉定理可以解决形如5100000000000000000000等大数幂取模或者求$a^x\ mod\ n=1$的大于1的最小x值等一类问题,其中欧拉函数占巨大的重要性,有效的将复杂的大数幂取模问题转化为简单的大数取模和快速幂问题,下面就来介绍一下基本的欧拉定理和扩展欧拉定理 欧拉函数 阅读全文
posted @ 2019-04-30 13:22 七月流 阅读(1742) 评论(0) 推荐(1) 编辑