![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树状数组
文章平均质量分 61
_Mocha_
私はこの世界を深く愛している
展开
-
[BZOJ1103][POI2007]大都市meg(树状数组维护树上差分)
树状数组+树上差分+dfs序原创 2017-10-31 18:47:54 · 709 阅读 · 0 评论 -
[BZOJ1878][SDOI2009]HH的项链(离线树状数组)
传送门首先我们发现这题是没有修改操作的,那么用离线就简单很多啦。 在线的话要splay?然后题目要求的是一个区间里面有多少种颜色,那么事实上如果里面有很多个同种颜色的贝壳话,只有一个贝壳是有用的。 那么我们只需要记录这样的一个贝壳就好啦,怎么记录,用树状数组统计前缀和不就好了嘛。 注意树状数组统计的是贡献 首先把所有操作都读进来,然后按照右端点排序(离线) 然后开始O(n)的...原创 2018-03-16 13:35:41 · 390 阅读 · 0 评论 -
[BZOJ2743][HEOI2012]采花(离线树状数组)
传送门这题和1878做法是一样的。我也有写blog。 但是1878要求的是区间内出现次数>1的颜色个数,而这题求的是区间中出现次数>2的颜色个数,那我们树状数组修改的就是last[last[i]]就好咯,具体做法见上一题。注意:这里的last会访问到0,注意在树状数组里面特判!#include<cstdio>#include<iostream&...原创 2018-03-16 13:42:18 · 381 阅读 · 0 评论 -
[BZOJ4240]有趣的家庭菜园(贪心+树状数组)
传送门因为草两边如果比他要高的话草就会死,那么我们肯定要让最高的放中间,然后从最高的开始向两边递减,这样就最优。我马上想到了之前做过的题。poj2299:给定一个长度为n的序列,如果只允许进行比较和交换相邻两个数的操作,求至少需要多少次交换才能把序列从小到大排序。这道题模拟的是冒泡排序,因为每次排一遍序就会使得逆序对少一个,实际上就是求序列中的逆序对。 那么带入这道题,不就是...原创 2018-04-19 17:26:05 · 389 阅读 · 0 评论 -
[poj2828]Buy Tickets(树状数组求第k大)
传送门题意:i个人排队,对于第i个人,我们知道他排在第pi个人后面(可以插队)且他有一个权值val,我们需要输出排好之后每个人的权值。首先我想的是链表来模拟,但是发现由于p[i]指的是位置而不是编号,所以链表是只能O(n^2)的。那么怎么办呢?我们结合题目中给的样例解释来思考。我们发现一开始51站在第2个位置上但是后面来的33想站在第2个位置上并把他挤开最终33站在了第2个位置...原创 2018-09-20 11:48:48 · 341 阅读 · 0 评论