摘要: 简介: 莫队这个算法是莫涛提出的。 用于处理一类不带修改的区间查询问题的离线 算法,其核心在于利用曼哈顿距离最小生成树 算法对区间处理顺序进行处理 。 ——zrt课件 这个算法本质上其实是暴力,但是由于可以离线处理循环的顺序,使得复杂度可以从n^2降到n^根号n甚至更低。 对于可以找到以下特点的题可 阅读全文
posted @ 2018-05-13 12:08 *Miracle* 阅读(672) 评论(0) 推荐(0) 编辑
摘要: 可持久化线段树,意思是可以查询历史记录的线段树。又叫主席树。我们可以通过记录不同的根节点,并在每一个更新到的节点处新建必要的节点。询问不同版本的主席树,只需要进入不同的根节点即可。 例题: 给定n,m,输入n个数组成的数列,有m个询问,每次询问l,r这个区间中,第k小的数的值。 分析: 这个题可以巧 阅读全文
posted @ 2018-05-13 12:04 *Miracle* 阅读(211) 评论(0) 推荐(1) 编辑
摘要: 两种算法本质是相同的。 都是从某一个点开始进行延伸,不断更新一个dis值,直到所有的点都被遍历到,从而求出一个最短路或者是一个树的边权的最小总和。 朴素算法都是n^2,都可以采用堆优化处理,降低复杂度到mlogn. 但是在一张完全图上跑,此时m=n^2,朴素算法反而快一些。而且常数小。 相比较于SP 阅读全文
posted @ 2018-05-13 12:03 *Miracle* 阅读(1116) 评论(0) 推荐(0) 编辑
摘要: 1.倍增LCA 通过记录f[i][j],每个点第2的j次方个父亲的编号,来找LCA 代码中,先要处理出每个点的深度,和father(f[i][0]),然后倍增求出所有的祖先。 work的时候,利用二进制拆分的思想,先把两个节点向上翻到同一个深度,再同时向上翻,直到到了lca的儿子位置,再返回f[x] 阅读全文
posted @ 2018-05-13 12:02 *Miracle* 阅读(631) 评论(1) 推荐(0) 编辑
摘要: 意义: 树链剖分 就是对一棵树分成几条链,把树形变为线性,减少处理难度 概念 题目大意: 给定一棵有根树,给定每个点初值。 需要处理的问题: 分析: 树链剖分+线段树 树剖部分: 需要数组: 1.dfs1: 目标: ①找到fa,重儿子(son) ②处理节点深度,子树大小(size)(dep[root 阅读全文
posted @ 2018-05-13 12:00 *Miracle* 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 普通平衡树 Treap 题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 输入输出格式 输入格式: 第一行为 n ,表示操作的个数,下面 n 行每行有两个数 opt 和 x , opt 表示操作的序号( 1≤opt≤6 ) 输出格式: 对于操作 3,4,5,6 阅读全文
posted @ 2018-05-13 11:59 *Miracle* 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 欧拉函数: 在数论,对正整数n,欧拉函数是小于n的正整数中与n互质的数的数目(φ(1)=1)。此函数以其首名研究者欧拉命名(Euler'so totient function),它又称为Euler's totient function、φ函数、欧拉商数等。 例如φ(8)=4,因为1,3,5,7均和8 阅读全文
posted @ 2018-05-13 11:56 *Miracle* 阅读(339) 评论(0) 推荐(0) 编辑
摘要: LICS:最长公共上升子序列; 一般令f[i][j]表示a串前i位,b串以j结尾的LICS长度。于是,答案为:max(1~m)(f[n][i]); 朴素做法:O(n^3) 相等时,从1~j-1枚举最大值。 算法时间复杂度改进思路主要从优化第三层(k)复杂度入手。 升级做法: O(n^2logn) 利 阅读全文
posted @ 2018-05-13 11:54 *Miracle* 阅读(334) 评论(0) 推荐(0) 编辑
摘要: 基本思想在于将一个数拆分成每一位的数字,将总问题转化为子问题。 例:求[a,b]中各个数字出现次数。 (luogu2602 数字计数) 1.发现在i位数中(不考虑前导零),每一个数字出现的次数都相同。f[i]=f[i-1]*10+10^(i-1); 2.在ABCD中,将其拆为:A000+B00+C0 阅读全文
posted @ 2018-05-13 11:53 *Miracle* 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 压位高精:即通过将原来数组中一个位置存一位数,改为一个位置存p位数(8-10)。本质上是一种利用进制转换思想的压缩方式。 压位高精VS普通高精优势: 1.节省空间。(10倍以上) 2.节省时间(循环次数少)(10倍) 3.在对于高精与低精(乘法不超int)运算时,可以利用进制较高的优势,达到简化代码 阅读全文
posted @ 2018-05-13 11:52 *Miracle* 阅读(901) 评论(0) 推荐(1) 编辑
摘要: Link Station 传送站 阅读全文
posted @ 2018-05-13 11:50 *Miracle* 阅读(863) 评论(0) 推荐(0) 编辑
摘要: 方法一:scanf()读入char[] 使用方法: char str[1024]; scanf("%[^\n]",&str); getchar(); 方法二:getchar()读入char[] 使用方法: char str[1024]; int i=0; while((str[i]=getchar( 阅读全文
posted @ 2018-05-13 11:48 *Miracle* 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 1.floyd和dij(SPFA同理)算法的路径记录方法。 https://blog.csdn.net/silence401/article/details/62049708 2.背包中用到的vector直接复制。 https://blog.csdn.net/benTuTuT/article/det 阅读全文
posted @ 2018-05-13 11:47 *Miracle* 阅读(287) 评论(0) 推荐(0) 编辑
摘要: https://blog.csdn.net/xiong452980729/article/details/51394036 阅读全文
posted @ 2018-05-13 11:46 *Miracle* 阅读(763) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 要求在平面直角坐标系下维护两个操作: 1.在平面上加入一条线段。记第 i 条被插入的线段的标号为 i 2.给定一个数 k,询问与直线 x = k 相交的线段中,交点最靠上的线段的编号。 若有多条线段符合要求,输出编号最小的线段的编号 (省略输入以及在线操作的要求) 分析: 明显的线段树特 阅读全文
posted @ 2018-05-13 11:45 *Miracle* 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 小A在平面上(0,0)点的位置,第i栋楼房可以用一条连接(i,0)和(i,Hi)的线段表示,其中Hi为第i栋楼房的高度。如果这栋楼房上任何一个高度大于0的点与(0,0)的连线没有与之前的线段相交,那么这栋楼房就被认为是可见的。 施工队的建造总共进行了M天。初始时,所有楼房都还没有开始建造 阅读全文
posted @ 2018-05-13 11:43 *Miracle* 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给定一个区间及其各个元素的初值,要求支持如下操作: 1.区间加 2.区间赋值 3.查询区间最大值 4.查询区间历史最大值 分析: 容易想到线段树,但是细思恶极(仔细想想恶心到了极点)的是,最后查询区间历史最大值的操作。 如果只记录区间历史最大值显然不能下放,如果单纯更新区间加,区间赋值最 阅读全文
posted @ 2018-05-13 11:42 *Miracle* 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 有n个数,要将他们分成若干段,每一段的cost定义为: cost=r-l+ΣCk (k∈[r,l]) 该段的最终花费是:(cost-L)^2; 给出L,n,C(1~n),总共的最小花费。 分析: dp方程极容易想出来: f[i]=max(f[j]+(sum[i]-sum[j]+i-j-1 阅读全文
posted @ 2018-05-13 11:41 *Miracle* 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 你初始时有∞ 元钱,并且每天持有的股票不超过 Maxp 。 有 T 天,你知道每一天的买入价格( AP[i] ),卖出价格( Bp[i] ), 买入数量限制( AS[i] ),卖出数量限制( BS[i] )。 并且两次交易之间必须间隔 W 天。 现在问你 T 天结束后,最大收益是多少。 阅读全文
posted @ 2018-05-13 11:39 *Miracle* 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 题目大意: 给出N个正整数,AB两个人轮流取数,A先取。每次可以取任意多个数,直到N个数都被取走。每次获得的得分为取的数中的最小值,A和B的策略都是尽可能使得自己的得分减去对手的得分更大。在这样的情况下,最终A的得分减去B的得分为多少。 分析: 我们身临其境地考虑一下,先手肯定是要从大到小取数,并且 阅读全文
posted @ 2018-05-13 11:38 *Miracle* 阅读(168) 评论(0) 推荐(0) 编辑