
线段树、树状数组
文章平均质量分 80
Algobird
这个作者很懒,什么都没留下…
展开
-
hdu 1754 I Hate It(最简单的线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1754没有任何变型,所以直接贴代码。#include#include#include#include#include#include using namespace std;const int maxn = 200005;const int oo = 0xfffffff;#原创 2015-08-22 10:20:21 · 518 阅读 · 0 评论 -
hdu 1698 Just a Hook(线段树成段更新+延迟标记).
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1698题意:n个价值为1的棍子,按照输入把区间[x,y]的棍子变成z.问经过q操作后,总价值是多少。线段树成段更新的裸题,学习了lazy的用法。区间更新时先更新到他的下一层左右节点,再往下就等到用到左右节点的时候再往下更新,用一个lazy数组配合pushDown实现。注意:l原创 2015-08-22 16:10:46 · 553 阅读 · 0 评论 -
POJ 2528 Mayor's posters(线段树成段更新+离散化)
题目链接: http://poj.org/problem?id=2528题目大意,就是在一个区间贴海报,问最后可见(一点点也算)的海报有几种。线段树处理区间更新的做法是对的,每给定一个区间,然后成段更新,更新值为i,i为第i张海报,然后用一个vis数组标记出现的,就可以统计有多少个不同的海报了。但是这题的区间比较大,直接处理会超时,于是学习了离散化的处理方法,其实不用想太多,就是把区间原创 2015-08-23 13:30:45 · 742 阅读 · 0 评论 -
hdu 1394 Minimum Inversion Number(线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394题目大意:求数组的逆序数和,然后把第一个元素放最后,求一个新的逆序数和,重复操作,问最小的逆序数是多少。数组大小为n,元素为0-n-1的数,且不重复。题目说了是a permutation of the n integers from 0 to n-1. 。分成两步:先求原数原创 2015-08-22 11:28:17 · 458 阅读 · 0 评论 -
hdu 2795 Billboard(线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2795题目大意:有一块宽w,高h的通知板,现在要在 上面贴通知,通知为宽wi,高1,通知要尽量靠上在靠上的前提下靠左,问每张通知贴在那一行。用线段树存取区间所能贴的海报的最大宽度。然后查询,如果左区间的海报可以贴下,就搜索左边,不行就搜索右边。然后找到位置贴上海报,更新区间。原创 2015-08-22 13:56:01 · 491 阅读 · 0 评论 -
POJ 3468 A Simple Problem with Integers(线段树成段更新+lazy标记)
题目链接:http://poj.org/problem?id=3468成段更新,和这题差不多原创 2015-08-22 17:12:11 · 511 阅读 · 0 评论 -
hdu 1166 敌兵布阵(线段树、树状数组)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1166做的第一题线段树的题(也不全对,之前照模板写了一道st),但是考虑到线段树更新更灵活,而且一般情况下logN不会超时,所以老实打好基本功吧。WA了一次,因为update的时候,用原数组加减给定的值去更新,但是正确的应该是segTree[rt] += val,索性参考网上的把原始数组原创 2015-08-22 10:18:13 · 534 阅读 · 0 评论 -
HDU4217 Data Structure(线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4217 题目大意:给n和k,以及k个数(序列ki),表示一个1到n的序列,进行k次操作,每次取出序列中第ki小的数,问经过k次操作后,取出的数的和为多少?线段树,segTree维护的是rt节点下区间里有多少个数,每次删除时把包含第ki小的数的区间大小都减1。结果用long long原创 2015-12-05 22:29:51 · 668 阅读 · 0 评论