线段树
AndyZhang
一些当前好走的路会越走越窄,而一些当前艰难的路却会越走越宽广。
展开
-
poj 1177 picture
好多题目以前做过,由于自己没有分类,也很难找了。这里分一下类,以后方便查找。这是一个线段树+离散化的题目。这个题目比较复杂,但是一旦你画一下图,走一个例子,就完全明白了。我也是参考了解题报告和陈宏的论文,才搞明白的,下面就把我理解的说一下吧。 这道题目就是求这个边界的周长,首先可以讲每个矩形的左右两条边当做两条扫描线,这样如果有n个矩形,就有2*n个扫描线。本代码中l[]数组中原创 2012-03-16 21:39:53 · 2176 阅读 · 0 评论 -
poj 3277 - 线段树巩固
这道题目和原来求矩形覆盖的面积差不多,这个只是它的一个特殊情况,那就是矩形底边都在x轴上。不多说了,每天多一点点的理解,每天深入一点点,最后你会很快滴将你的想法转化为代码,这也许就是所谓的码力吧,编码的能力。 //这道题目其实就是面积覆盖,可以用原来拿到题目的源码,稍微改一下就ok//但是还是想学习一下,自己写写代码,深入了解线段树,希望大家能看明白//其实有时候动手画一棵树,然后原创 2012-04-04 23:06:27 · 1683 阅读 · 0 评论 -
poj 3368 又一线段树
这一个题目是求一个区间内重复数字的最大次数。这题有一个特点,数字是递增滴,相同的数字肯定是连续的。将相同的数字看做一个部分,hash保存每个数字属于哪个部分。对所有的部分建一颗二叉树,保存此区间内最大的重复数字的个数。 查询的时候分3中情况1 在同一个部分,直接 尾 - 头 + 1就是结果2 只差一个部分,分开算,在各个部分里面重复多少次,比较一下3 中间有很多个部分,原创 2012-03-20 00:22:18 · 1326 阅读 · 1 评论 -
poj 3368 RMQ做法-实际上不过是dp的变形罢了
上一篇是线段树的做法,这一个是用RMQ方法做的,顺便学习一下RMQ。说是RMQ实际上就是dp的变形。RMQ定义:RMQ (Range Minimum/Maximum Query)问题是指:对于长度为n的数列A,回答若干询问RMQ(A,i,j)(i,j主要方法及复杂度如下: 1、朴素(即搜索),O(n)-O(qn) online。 2、线段树,O(n)-O(q原创 2012-03-20 20:01:15 · 904 阅读 · 0 评论 -
RMQ你让我懂得了dp的强大
最近碰到一个线段树的题目,发现discuss中说可以用RMQ做,以前也了解过,但是没有深入地去理解,今天查了一些资料,好好地整理一下。表面上RMQ,看着还挺高级,实际上就是一个简单的dp,只不过这个dp有点高端,特别是状态方程,形式上和原来没什么两样,但是内容上却差别很大。好了废话少说,看看例子。 1、什么是RMQ呢?RMQ (Range Minimum/Maximum Query原创 2012-03-20 20:33:26 · 1645 阅读 · 0 评论 -
poj3321---Apple Tree
题目大意:给你一颗苹果树,树的主干设为1,每一个分支设为一个数,一直到N,代表这颗苹果树。每个分支上面只能最多有一个苹果,也就是一个枝子上面不可能有两个苹果,另外注意一点,不要把苹果树想象成二叉树,苹果树每个节点可以分出很多叉,应该是多叉树。 输入是叉之间的关系,1 21 3就是主干上面两个叉分别是2 和3. 下面是两种操作,Q 和CC j 的意思是如果原创 2011-08-20 02:44:18 · 5479 阅读 · 12 评论