摘要:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=14795 该思路是通过该博客学会的: http://www.cnblogs.com/scau20110726/archive/2013/04/12/3016765.html 特别
阅读全文
摘要:http://poj.org/problem?id=3225 两大难点: 1. 区间的集合操作: 2. 区间端点的开、闭的区分方式: 区间的端点x都要两种状态,要么包含x,要么不含x ——可见,每个数其实都要两个值来存储区间的开闭状态,我可以联想到每一个坐标乘以2! 即,对于区间左端点L, L*2代
阅读全文
摘要:http://poj.org/problem?id=2528 几个可以很好确定自己离散化是否有问题的样例: 231 101 45 10 31 101 46 10 答案分别是:2和3 一种更节省空间的版本,省去了hash数组,因为已经排序了,所以可以二分查找找到对应的下标:
阅读全文
摘要:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18697
阅读全文
摘要:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=22105
阅读全文
摘要:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=13895
阅读全文
摘要:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=23846 题解: 1. 游程编码(将序列转化为(value, num)的一段一段的键值对形式)后,将问题转化为几乎是一个RMQ问题,仅有一些细节要单独考虑 2. 如果查询的两个下
阅读全文
摘要:RMQ引子: 我们都知道求一个数组的最小值,可以用很朴素的O(n)级别的算法来求解。 那么,如果现在是求一个数组的任意连续子数组的最小值呢?假设询问Q次,那么总的时间复杂度为O(Q*n),时间开销很高!这就是今天所要介绍的RMQ问题(Range Minimum Query)。 然而,如果使用一些分治
阅读全文
摘要:http://poj.org/problem?id=3468 要求: 1. 区间修改,增大、减小一个固定值 2. 查询区间和
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1698 要求: 1. 区间修改 2. 最后整个区间求和 分析: 因为没有多次查询,而只有最后的一次整个区间的求和查询,所以可以省去query查询函数。
阅读全文
摘要:http://acm.hdu.edu.cn/showproblem.php?pid=1166 需求: 1.点修改 2.区间求和 标准的BIT(二叉索引树,又名树状数组)问题,当然也可以用最基础的仅支持“点修改”的线段树来解决! 1.线段树版本: 2.树状数组(BIT)版本:
阅读全文