线段树
文章平均质量分 60
GEOTCBRL
?????
展开
-
【bzoj3211】花神游历各国
其实这是一道sb题…… 哦不其实是两道2333333(还有3038也是同一题) 然而在写3038的时候由于数据太水直接就A掉了。。。 刚刚拿之前的code交上去就WA啦。。。 不能判断区间和是否==r-l+1因为会出现0……所以要开多一个东西表示这个区间还有多少个数不会再改变了 每个数可以开方的次数是很小的,就当做是常数非常小的O(logn)O(\log n)吧 这样复杂度就是O(nlo原创 2015-09-28 21:14:18 · 786 阅读 · 0 评论 -
CodeChef FEB14 COT5
来自2016集训队作业。你需要维护一棵带插入和删除的treap,多次询问某两点间的treap上距离。原创 2017-06-17 22:13:26 · 804 阅读 · 0 评论 -
【bzoj 3946】 无聊的游戏 - 线段树套可持久化Treap
蜜汁卡常卡过去了。。。 考虑用线段树维护区间的LCP,如果设height[i]=LCP(S[i],S[i+1])height[i]=LCP(S[i],S[i+1]),那么LCP(S[l]...S[r])=min(height[l]...height[r−1])LCP(S[l]...S[r])=\min (height[l]...height[r-1])。 只要能快速维护heighthei原创 2016-12-25 19:15:26 · 1369 阅读 · 0 评论 -
【 bzoj 4527 && CF 407 E】K-D-Sequence
老(?)题了。 题意:给定一个序列,求一段最长的区间,使得这个区间插入至多kk个数并排序后是一个公差为dd的等差数列。 其实现在感觉的话这题也不是很难? 一个平凡的情况是d=0d=0 ,这个时候我们只需要把连续的数都搞出来即可。 然后是d>1d>1的情况。注意到我们要求的区间是连续的一段,如果这中间的数要在插入一些数之后形成等差数列,其两两之间的差一定是公差dd的倍数,换句原创 2016-04-14 21:20:36 · 1282 阅读 · 0 评论 -
GDKOI2016 题解
day 1 Problem 1. 魔卡少女 题意:动态维护区间内所有子序列的异或和的和,单点修改。 解法:先做一个序列的异或前缀和Si=Ai⊕Si−1S_i=A_i\oplus S_{i-1},于是查询就变成了询问[l,r][l,r]内的∑i<jSj⊕Si\sum_{i<j}S_j\oplus S_i。注意到元素的大小只有10001000,也就是不超过10个二原创 2016-02-22 13:24:45 · 1817 阅读 · 0 评论 -
GDKOI2015 day 1 代码
项链:#include using namespace std;#define rep(i,a,b) for (int i = a , _ = b ; i <= _ ; i ++)#define per(i,a,b) for (int i = a , _ = b ; i >= _ ; i --)#define cr(x) memset(x , 0 , sizeof x)inline原创 2016-02-17 17:52:00 · 1213 阅读 · 0 评论 -
【 bzoj 4355 】 Play with sequence - 线段树乱搞
先讲个故事。。。 据说某一天,claris扔了一道题到某群里面然后引起了不大的讨论~然后好学向上的whx同学发现了这题。。。聪明的whx想了很久。。。然后!whx发现看不懂claris给的暴力的证明。。。于是去找了吉司机。。。吉司机若有所思。。。再后来跟whx说:这是对的。。。然而whx同学并没有写。。。最后就弃坑啦。。。 第二年,whx来到WC2016的会场上,发现:诶,吉司机的线段树原创 2016-02-01 19:13:23 · 1754 阅读 · 2 评论 -
【bzoj4059】[Cerc2012]Non-boring sequences
这题暴力的复杂度是对的!!!感觉这题A得比较奇怪。。。 首先有一个很直接的想法是,对于一个点i,它所在的单独区间是[prei,nxti][pre_i,nxt_i],那么它将对[prei,i−1][pre_i,i-1]与[i+1,nxti][i+1,nxt_i]的点的答案产生影响。如果把每个产生影响 的区间看做一个点,那么每个点i的影响就可以看做一个矩阵。原创 2015-11-12 13:32:51 · 1589 阅读 · 0 评论 -
【bzoj2733】 [HNOI2012] 永无乡
sb题 合并:并查集+线段树启发式合并,注意动态开点 查询:直接查对应线段树的K大。 时间复杂度O(qlog2n)O(q\log^2 n)#include <bits/stdc++.h>using namespace std;#define rep(i,a,b) for(int i=a,_=b;i<=_;i++)#define per(i,a,b) for(int i=a,_=b;i>=原创 2015-11-20 23:43:56 · 744 阅读 · 0 评论 -
【bzoj4149】[AMPPZ2014]Global Warming
一开始以为一个单调队列就搞定了。。。后来发现好像根本不是那么一回事QAQ参考了一下claris的题解>.< http://www.cnblogs.com/clrs97/p/4582835.html首先要求出每个点的最大值区间和最小值区间,然后可以得到答案区间之间的不等关系,再枚举左端点,根据不等式在线段树里面查询。#include <bits/stdc++.h>using namespace s原创 2015-10-29 15:33:32 · 2015 阅读 · 0 评论 -
【BZOJ 2138】stone - Hall定理
给一些互不包含的区间和一些石子堆,按顺序依次从区间内取走一些石子且每次有上限,要求每次都尽量取最多石子。原创 2017-07-05 16:13:40 · 1090 阅读 · 0 评论