摘要: 题目大意: Welcome to SAO ( Strange and Abnormal Online)。这是一个 VR MMORPG, 含有 n 个关卡。但是,挑战不同关卡的顺序是一个很大的问题。 有 n – 1 个对于挑战关卡的限制,诸如第 i 个关卡必须在第 j 个关卡前挑战, 或者完成了第 k 阅读全文
posted @ 2018-05-16 11:07 *Miracle* 阅读(311) 评论(0) 推荐(1) 编辑
摘要: 题目大意: N个骑士组个队,每个骑士有战力,每个骑士恨一人,相互憎恨不同在队里,怎样安排战斗力最大?输出最大总战斗力即可。 分析: 明显的,每个骑士恨一个人,那么这两个人之间可以连一条边。是有向的还是无向的?可以想到,如果一个骑士恨一个骑士,那么他们两个无论如何不可能在这个队里,我恨你,就相当于你恨 阅读全文
posted @ 2018-05-15 17:10 *Miracle* 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 简介: 莫队这个算法是莫涛提出的。 用于处理一类不带修改的区间查询问题的离线 算法,其核心在于利用曼哈顿距离最小生成树 算法对区间处理顺序进行处理 。 ——zrt课件 这个算法本质上其实是暴力,但是由于可以离线处理循环的顺序,使得复杂度可以从n^2降到n^根号n甚至更低。 对于可以找到以下特点的题可 阅读全文
posted @ 2018-05-13 12:08 *Miracle* 阅读(584) 评论(0) 推荐(0) 编辑
摘要: 可持久化线段树,意思是可以查询历史记录的线段树。又叫主席树。我们可以通过记录不同的根节点,并在每一个更新到的节点处新建必要的节点。询问不同版本的主席树,只需要进入不同的根节点即可。 例题: 给定n,m,输入n个数组成的数列,有m个询问,每次询问l,r这个区间中,第k小的数的值。 分析: 这个题可以巧 阅读全文
posted @ 2018-05-13 12:04 *Miracle* 阅读(188) 评论(0) 推荐(1) 编辑
摘要: 两种算法本质是相同的。 都是从某一个点开始进行延伸,不断更新一个dis值,直到所有的点都被遍历到,从而求出一个最短路或者是一个树的边权的最小总和。 朴素算法都是n^2,都可以采用堆优化处理,降低复杂度到mlogn. 但是在一张完全图上跑,此时m=n^2,朴素算法反而快一些。而且常数小。 相比较于SP 阅读全文
posted @ 2018-05-13 12:03 *Miracle* 阅读(940) 评论(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* 阅读(587) 评论(1) 推荐(0) 编辑
摘要: 意义: 树链剖分 就是对一棵树分成几条链,把树形变为线性,减少处理难度 概念 题目大意: 给定一棵有根树,给定每个点初值。 需要处理的问题: 分析: 树链剖分+线段树 树剖部分: 需要数组: 1.dfs1: 目标: ①找到fa,重儿子(son) ②处理节点深度,子树大小(size)(dep[root 阅读全文
posted @ 2018-05-13 12:00 *Miracle* 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 普通平衡树 Treap 题目描述 您需要写一种数据结构(可参考题目标题),来维护一些数,其中需要提供以下操作: 输入输出格式 输入格式: 第一行为 n ,表示操作的个数,下面 n 行每行有两个数 opt 和 x , opt 表示操作的序号( 1≤opt≤6 ) 输出格式: 对于操作 3,4,5,6 阅读全文
posted @ 2018-05-13 11:59 *Miracle* 阅读(172) 评论(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* 阅读(267) 评论(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* 阅读(315) 评论(0) 推荐(0) 编辑