摘要: 这题在洛谷上可以找到提交 P2680运输计划 题目背景 公元 2044 年,人类进入了宇宙纪元。 题目描述 L 国有 n 个星球,还有 n-1 条双向航道,每条航道建立在两个星球之间,这 n-1 条航道连通了 L 国的所有星球。 小 P 掌管一家物流公司,该公司有很多个运输计划,每个运输计划形如:有 阅读全文
posted @ 2017-08-24 17:31 Mychael 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 考虑这样一道题: 有一个数列,每次修改区间[Li,Ri],在所有修改操作结束后询问每个单点的值 这不是裸的线段树么。。。 没必要,真的没必要。。 你想想线段树多少代码打着烦不烦呐。。 你想想如果数据是n>=10000000 线段树岂不是T得飞起 我们定义这样一个数组D[i]=A[i]-A[i-1], 阅读全文
posted @ 2017-08-23 18:33 Mychael 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 最小点权覆盖集 二分图最小点权覆盖集解决的是这样一个问题: 在二分图中,对于每条边,两个端点至少选一个,求所选取的点最小权值和。 方法: 1、先对图二分染色,对于每条边两端点的颜色不同 2、然后建立源点S,向其中一种颜色的点连一条容量为该点权值的边 3、建立汇点T,由另一种颜色的点向T连一条容量为该 阅读全文
posted @ 2017-08-23 13:12 Mychael 阅读(1370) 评论(0) 推荐(0) 编辑
摘要: 康托展开 康托展开解决的是当前序列在全排序的名次的问题。 例如有五个数字组成的数列:1,2,3,4,5 那么1,2,3,4,5就是全排列的第0个【注意从0开始计数】 1,2,3,5,4就是第1个 1,2,5,3,4就是第2个 给定一个序列,怎么确定它的排名呢? 就用到了这样一个公式X=a[n]*(n 阅读全文
posted @ 2017-08-19 16:35 Mychael 阅读(1696) 评论(0) 推荐(8) 编辑
摘要: 通常我们使用的二叉堆,是用一个数组实现的完全二叉树,对于查询有O(1)复杂度,对于插入、删除有O(logn)复杂度 而且常数比较小,是一个比较优秀的数据结构 但是。 当我们需要合并两个堆的时候,用普通的二叉堆就显得吃力了,时间复杂度达到O(mlogn) 这个时候可并堆这种数据结构就出现了。而在其中, 阅读全文
posted @ 2017-08-17 12:11 Mychael 阅读(276) 评论(0) 推荐(1) 编辑
摘要: 树链剖分这个算法我看了好多大神们的博客,才慢慢领悟,希望我写的过得去( · · ) 众所周知,维护区间信息的题目可以用线段树高效实现。类似于区间这样一维的结构,在树上维护两点间的信息【比如树上两点之间的最大值】也可以用线段树吗? 仔细想想,好像很难实现。因为线段树维护的是链状结构,而树是一张图。 但 阅读全文
posted @ 2017-08-13 23:38 Mychael 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 【吐槽】学了好久的后缀数组,看了各个大神博客,还是没懂= =,看起来好难的一个东西【一堆堆for】。主要还是自己码代码的能力太弱了。。。。 后缀数组,顾名思义,一定与后缀有关。后缀数组简称sa,sa[i]表示在字符串s的所有后缀中,排名第i的后缀的首字母在字符串中的位置。【排名从0开始】 比如,对于 阅读全文
posted @ 2017-08-02 17:13 Mychael 阅读(200) 评论(0) 推荐(0) 编辑
摘要: There is a company that has N employees(numbered from 1 to N),every employee in the company has a immediate boss (except for the leader of whole compa 阅读全文
posted @ 2017-07-26 20:58 Mychael 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 总是听到主席树这个高大上的名字,仰慕已久,今天开始简单地学习 主席树是一种可持续化数据结构,这个名字与算法本身并无太大关联,听说是以创造者命名的。 主席树,简单来讲,其实就是线段树。一堆的线段树,而且每一个只由前一个修改而来。 什么意思?我们来看个例子 你有一个区间{1,3,8,7,6,7,2} 【 阅读全文
posted @ 2017-07-20 22:20 Mychael 阅读(180) 评论(0) 推荐(1) 编辑
摘要: 学完Splay的查找作用,发现和普通的二叉查找树没什么区别,只是用了splay操作节省了时间开支。 而Splay序列之王的称号可不是白给的。 Splay真正强大的地方是他的区间操作。 怎么实现呢? 我们知道查找树的中序遍历是一个有序的序列。这个时候我们打破查找树左小右大的规则,而是把他的中序遍历作为 阅读全文
posted @ 2017-07-20 14:40 Mychael 阅读(810) 评论(0) 推荐(0) 编辑