![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
树状数组
文章平均质量分 64
neither_nor
这个作者很懒,什么都没留下…
展开
-
BZOJ3910 火车
先orz小火车IOI rank2……傻逼我做法:LCT维护链染色和查询单点颜色,链长度orz commonc做法:以起点为根建树,一个点没被走过的充要条件是他的子树内没有点被作为过行进目标,拿树状数组搞就好了其实用并查集搞也可以#include#include#include#include#include#include#include#include原创 2016-08-18 10:23:35 · 476 阅读 · 0 评论 -
BZOJ1106 [POI2007]立方体大作战tet
看题,没啥思路上了趟厕所,路上突然想到答案是不是就是形如abab这样的形式有多少对,因为凡是碰到这样的一定要交换一次,而不是这样的就不用交换就消了然后发现确实如此上厕所大法好啊这玩意可以搞个树状数组求#include#include#include#include#include#include#include#include#include#include原创 2016-08-19 14:00:53 · 960 阅读 · 0 评论 -
BZOJ2090/2089 [Poi2010]Monotonicity 2/Monotonicity
考虑dp,f[i]表示使得i在选出来的子序列里尽可能靠后的话,那么i最靠后可以作为第f[i]项显然如果能求出每个i的f值,取max就是答案然后我们要证明,每个f[i]只可能是由j也就是我们要说明,当j出现在答案中而j的位置不是f[j]时,f[i]不可能更大那么我们假设i是第一个i,有j首先a[j]与a[i]一定不满足位置x的大小关系,且能满足位置y的大小关系,由此可以推出位置x原创 2016-09-16 21:04:26 · 1517 阅读 · 4 评论 -
BZOJ3192 [JLOI2013]删除物品
这个,把两个栈拼一起,然后拿个指针维护分界点,拿树状数组维护要弹多少个元素即可#include#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define MAXN原创 2016-09-19 18:32:47 · 544 阅读 · 0 评论 -
BZOJ2124 等差子序列
挺厉害的题我们考虑当前加入了第i个数,为x,那么我们可以维护一下哪个数出现过,出现过为1,没出现为0,那么加入x的时候我们只需要判断以x为中心的极长子串是否是回文串即可用一个树状数组维护两个方向的哈希值即可#include#include#include#include#include#include#include#include#include#include#原创 2017-03-01 07:26:19 · 811 阅读 · 0 评论 -
BZOJ1109 [POI2007]堆积木Klo
随便推推,发现要求求a[i]-i单调不降,a[i]单调递增的最长子序列然后发现这两个条件可以推出i所以改变一下坐标然后求最长上升子序列即可注意双关键字排序注意吧a[i]-i>0的都continue了#include#include#include#include#include#include#include#include#include#include#原创 2017-03-10 11:50:39 · 357 阅读 · 0 评论 -
BZOJ4785 [Zjoi2017]树状数组
扯淡:昨天就在BZOJ上看到了题,但是光老师说今天考ZJOI的题,就一直没看看完题看了看部分分,所有修改在所有询问之前?那这题是不是肯定是cdq啊然后YYYY,YY了一个贼JB恶心的CDQ,写了9000B,然后发现我们测的时候开4秒,觉得在校OJ上4秒肯定跑不过就交了70分暴力后来考试结束了发现标程跑了3秒9……于是把时限开到8s,6s就过了如果上天再给我一次机会,我一定写一个原创 2017-03-28 17:19:23 · 1174 阅读 · 0 评论 -
BZOJ2568 比特集合
比如你要询问第k位为1的有多少个,那么其实就是询问如果只考虑后k位的话,在2^k~2^(k+1)-1之间的有多少个那么维护16个树状数组,分别代表只考虑后i位的时候的情况考虑整体加操作,记录一个全局标记ch维护当前整体加了多少,然后在插入和查询的时候都减去ch这样的话查询区间有两个,一个是2^k-ch~2^(k+1)-1-ch,另一个是2^k+2^(k+1)-ch~2^(k+1)-1-原创 2017-05-04 09:22:39 · 638 阅读 · 0 评论