树状数组
文章平均质量分 55
Michael_GLF
AFOing
展开
-
洛谷2617 Dynamic Rankings(主席树+树状数组)
传送门【题目分析】题意相当于动态维护区间第K大。静态第K大可以直接用主席树解决,对每个点处理出一个权值线段树的前缀和作减即可,然而涉及单点修改,他就咕了,因为不可能一棵一棵的去修改。因为这个地方是单点修改,区间查询,所以可以想到树状数组这个东东上去。所以这个就变成了一个树状数组套权值线段树,即树状数组每个节点维护一棵权值线段树,区间查询就是合并区间[l,r]的线段树的信息。考虑...原创 2019-02-03 19:15:33 · 287 阅读 · 0 评论 -
第一届“文翁杯”现场竞技赛 T3 文翁点名(字典序k大LIS+树状数组)
校内:传送门洛谷(原题):传送门【题目分析】啊啊啊啊啊啊再给我两分钟~~~~~但好像2min也没法debug完qwq如果我们选出一个集合A进行点名,那么集合中的元素会朝自己应在的位置前进,最后以达到排序的目的,但我们发现集合外元素的相对位置是不会变的,也就是说集合外的元素会构成一个上升子序列。记一个结论:k小集合对应k大补集。所以这道题就转化为求序列第k大上升子序列。求...原创 2019-01-29 20:23:49 · 166 阅读 · 2 评论 -
NOIP模拟 相交(树链剖分+树状数组维护)
内网传送门【题目分析】我已经无力爆粗了。。。。。。。md这c++怎么能在编译了、运行了以后,最后发现居然是之前的版本?喵喵喵?考虑两条路径相交,那么其中一条的lca一定在另一条路径上。所以开两个树状数组维护之前路径的信息和之前路径的lca的位置。统计一下,然后更新,再做下一条路径即可。【代码~】#include<bits/stdc++.h>using names...原创 2018-11-05 14:09:13 · 166 阅读 · 0 评论 -
洛谷2184 贪婪大陆(树状数组)
传送门【题目分析】考虑每次是在区间[l,r]中埋一种,所以记录每次的左右端点,查询一段区间[l,r]就是统计1~r中埋了多少雷,再减去1~l-1中埋完的雷(即右端点)即可。所以用两个树状数组维护左右端点信息即可。(常数比线段树要小)【代码~】#include<bits/stdc++.h>using namespace std;const int MAXN=1e...原创 2018-10-29 14:17:12 · 201 阅读 · 0 评论 -
洛谷1972 HH的项链(树状数组)
传送门【题目分析】刚看完这道题YY了一下线段树的做法,大概就是维护颜色出现次数,如果区间合并时一个颜色的个数从0变为1,那么就出现了一次,cnt++(不过感觉很难写所以就没写)很明显可以离线来做,因为不涉及修改操作,所以将所有询问按左右id进行排序,对于同一颜色,用链表储存位置,从左向右走的时候向树状数组中更新,然后在树状数组中查询即可。(结果数组开小了调了半天233)【代码~】...原创 2018-10-27 21:30:26 · 209 阅读 · 0 评论 -
NOIP模拟 行星通道计划(二维树状数组)
QAQ【题目分析】考虑树状数组维护状态,然后。。。。。就没有然后了。。。。。没想出来二维如何统计。感觉正解很毒瘤啊,各种压位操作。。。。所以正常打个二维树状数组还是能过啊。。。。考虑两个连接点x,y,如果以后有两个点x',y'经过他,那么一定满足x<x'<y<y'或x'<x<y'<y,所以相当于1~x-1,x+1~y-1的点相连的代价增加1,x+...原创 2018-10-23 19:31:56 · 106 阅读 · 0 评论 -
关于树状数组的区间修改和单点查询
写在前面之前一直不知道树状数组可以支持区间修改,所以写一篇博客记录一下。首先给个小栗子:如下图:利用差分的思路,就得到下图:那么如果我们要求将2~4的所有元素+2呢?我们就可以得到下图:可以发现,差分的第二项和第五项一个加了2,一个减了2,所以对于每次区间[l,r]操作,我们只需要在l和r+1的位置加、减操作值即可,证明也很简单,首先操作区间内的数的差肯定不会变...原创 2018-10-08 16:34:14 · 299 阅读 · 0 评论 -
NOIP模拟 相遇(LCA+树状数组+dfs序)
【题目描述】豪哥生活在一个n个点的树形城市里面,每一天都要走来走去。虽然走的是比较的多,但是豪哥在这个城市里面的朋友并不是很多。当某一天,猴哥给他展现了一下大佬风范之后,豪哥决定要获得一些交往机会来提升交往能力。豪哥现在已经物色上了一条友,打算和它(豪哥并不让吃瓜群众知道性别)交往。豪哥现在spy了一下这个人的所有行程起点和终点,豪哥打算从终点开始走到起点与其相遇。但是豪哥是想找话题的,他...原创 2018-10-05 15:57:21 · 259 阅读 · 0 评论 -
HDU1166 敌兵布阵(树状数组或线段树)
【问题描述】 C 国的死对头 A 国这段时间正在进行军事演习,所以 C 国间谍头子 Derek 和他手下 Tidy 又开始忙乎了。A 国在海岸线沿直线布置了 N 个工兵营地,Derek 和 Tidy 的任务就是要监 视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数 C 国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手, 但这些都...原创 2018-06-27 22:26:18 · 143 阅读 · 0 评论