线段树
quinwu-
这个作者很懒,什么都没留下…
展开
-
hdu 1166 敌兵布阵(线段树,单点更新)
难得的一道汉语题。题意就不说。好多人看完题后肯定想的使用一个足够大的数组来模拟,但是这样模拟的话肯定会超时。二重循环的时间复杂度为O(n^2)。这个题属于线段树中的对单一结点操作的简单线段树,就是每次update只是对一个点操作。要注意的是由于线段树的题目一般数据量都比较大,在输入的时候用cin不合适,时间卡的紧的话会超时,所以这块用scanf还有一点要注意的是乘法除法运算在计原创 2013-07-22 23:03:43 · 677 阅读 · 0 评论 -
hdu 1754 I Hate It(线段树,单点更新)
又见汉语题。这里同样用到线段树处理,不过value值不是区间的值的和,而变成的区间(l,r)上的最大值,即为最大分数。然后其他的跟hdu 1166的都一样了。#include#include#includeusing namespace std;const int Maxsize = 200010;int maxx(int a,int b)/*value值来存当前区间的最原创 2013-07-22 23:10:18 · 672 阅读 · 0 评论 -
hdu 1394 Minimum Inversion Number(线段树+逆序对)
原题友情链接~快速通道~请轻戳~hdu 1394这里说下题目的意思。告诉你一个长度为n的序列,序列的元素为0~n-1,序列元素是无序的。序列可以进行变换,就是可以把当前序列的第一个元素扔到序列末尾,形成一个新的序列。求所有中变换的序列中逆序对的最少情况。(逆序对 i aj)思路:先求出一种情况序列的逆序对数,每进行一次变化逆序对数的变化只跟第一个元素的在有序序列中的相对大小有关。原创 2013-08-02 22:31:17 · 809 阅读 · 0 评论 -
hdu 4046 Panda(线段树+单点更新)
原题友情链接直通车~点击此处查看原题~2011年北京赛区网络赛的一道水题...............按照现在的水平还是不简单。考察:区间更新跟区间查询,线段树or树状数组。这里我用的是线段树。题意:一个小盆友要给他的女神是爱,但是他要赶时间,没时间写那么多,写的信上只有“w”和''b"。给出一个规定,出线连续的字符串是wbw时表示一个Love。第一行输入一个T,表示测试数原创 2013-08-06 09:47:06 · 885 阅读 · 0 评论 -
poj 3468 A Simple Problem with Integers(线段树,成段更新)
线段树。不过这次是对于整段更新操作的树,比起前面的单点更新略复杂,但对线段树的掌握要求更为全面。这里的整段更新时用到了一个add域,来存储增量。在每次更新的随着update操作递归深入的层次由上层结点对下层结点进行更新操作,而不是一次性将所有的结点都更新。(一次性全部更新的时间复杂度是O(nlogn),而不用树形结构时的更新操作时间复杂度仅为O(n),体现不出线段树的优势)。这个操作成为延原创 2013-07-22 23:26:14 · 662 阅读 · 0 评论 -
hdu 4614 Vases and Flowers(线段树)
今年杭电多校赛的题目。一眼看去,线段树,so easy。但是想的有点简单了,这个题目是线段树没错,但是难点在状态更新上。题目大意:主人公是个美女,一些追求者送了她好多花,可是美女的花瓶有限,一个花瓶只能插一朵花,而且美女还有打扫花瓶的习惯(就是把花瓶里的花扔掉。)输入1表示插花 接下来的两个数A,M,表示从A号瓶开始插(瓶子编号是0-n-1),一次插入A+1,A+2,....n原创 2013-07-26 22:12:34 · 950 阅读 · 0 评论 -
线段树and树状数组
线段树的基础写学的差不多了,其实线段树的入门并不难,主要是模板,但使用起来比较灵活,有些题目的难点就在灵活度上。然后我这里有自己写的一个线段树五个函数的模板(build ,query ,update,pushup,pushdown),基本上线段树的题都是在这几个函数的基础上进行变化的。这个模板的value值是线段的和,更新也是对于整段线段进行更新的,在面对不同的题目是做出稍微的修改应该原创 2013-07-22 23:34:49 · 899 阅读 · 0 评论