线段树 & 树状数组
文章平均质量分 54
ACM_Fish
新地址 : https://li-fish.github.io/
展开
-
数组计算机(线段树+水题)
强烈推荐这个博客!!!题目链接:数组计算机 因为是比赛的题很可能一会就打不开了,所以这里把题目描述写下来好了。 bLue 有一个神器的机器,这个机器可以读入一个数组,并按照用户要求快速地进行数组的处理和计算,它支持如下两种操作:操作 1:把数组中第 p 个元素的值增加 v。 操作 2:计算数组中 [l, r] 区间内所有数的和。 这个机器就是这么的神奇,但是 bLue 的计算机坏掉了,原创 2017-01-10 22:01:26 · 684 阅读 · 0 评论 -
POJ 3468 - A Simple Problem with Integers(线段树区间更新+模板)
题目链接:http://poj.org/problem?id=3468题目描述:给n个整数,进行m次查询或更新,查询指区间[l ,r]整数的和,更新指区间[l ,r]的整数全部增加z。解题过程题目不难,妥妥的模板题,卡在 pushDown 函数上两次,还不够细心。首先是lazy标记没处理好,这个提应该是让 lazy += z, 我第一次写成了 lazy = z,导致标记直接被替换掉了,之前的更新没加原创 2017-02-10 17:38:51 · 326 阅读 · 0 评论 -
POJ2155 - Matrix (二维树状数组)
题目链接:http://poj.org/problem?id=2155题目大意:给定一个矩阵,初始化为0,现在可以进行两种操作,一种是查询某个点的值是 0 还是 1。另一种是让这个矩阵的一个子矩阵内的值取反。解题过程:省赛选拔赛的题,太难了直接没看……… 后来补起来,有模板还是挺容易的。题目分析: 首先这题虽然看起来像是一个区间修改,单点查询的题,但是可以转化成单点修改,查询区间和。首先考虑一维原创 2017-04-09 17:00:37 · 3432 阅读 · 5 评论 -
UVA11235 - Frequent values(游程编码+线段树)
题目链接:https://vjudge.net/problem/UVA-11235题目大意:给定一个递增序列,询问一段区间内出现频率最多的数出现的次数。解题过程:之前图灵杯比赛的题,当时照着板子敲A的,现在突发奇想补一下题,感觉还是挺简单的,就是用到了游程编码。题目分析:由于题目是有序的,那么可以很方便的将一段相同的数合为一个区间,data[i]表示第i段区间元素个数,lb[i]记录第i段区间的左边原创 2017-06-28 16:56:15 · 379 阅读 · 0 评论 -
HDU1394 - Minimum Inversion Number(线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1394题目大意:给定一个由00到n−1n-1组成,长度为nn每个元素唯一的序列,可以进行一种操作,把第一个元素放到最后一个位置。求经过若干次操作后的,最小逆序对数。解题过程:这题之前写过一个暴力解法的题解,现在用线段树来解决一下。题目分析:这里用线段树主要是求解初始状态的逆序对数,对于每次的操作有一个结论原创 2017-06-21 14:49:19 · 314 阅读 · 0 评论 -
线段树小结
前言:实验室要开展每周的算法讲堂活动,大概是每周一个集训队员来给大家将一个知识点,于是我去讲线段树来开头了,但是自己好弱啊,自从寒假集训后就一直没敲过线段树代码了,于是这几天一直在照着金巨巨的博客刷线段树的题(也是抄的金巨巨的模板…)。这里总结一些做到的题,一些线段树的基本思路,也当做理一下总结的思路。用到的一些宏定义:#define lson root<<1 #define rson root<<原创 2017-06-19 12:46:38 · 433 阅读 · 0 评论 -
HDU4027 - Can you answer these queries? (线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4027题目分析:区间开根号下取整,询问区间和。解题过程:注意,进行更新和询问的操作的时候要注意xx和yy的大小,这里被坑了,差点以为自己清奇的脑洞不对……发现好多人都是转化为单点更新,自己比较耿直,写了好长的区间更新代码,也算是一题多解吧。题目分析:单点更新解法:首先要注意到对于开根号操作,这里的输入数据原创 2017-06-21 15:57:13 · 308 阅读 · 0 评论