随笔分类 -  数据结构

摘要:zcy的励志故事.jpg 傻逼zcy突然想立一个flag,写一个segment-tree-beats的题娱乐一下 于是他就想起了这道题。 他打算今晚写完 然后光是写他就写的头昏脑涨,还犯了询问写反这种傻逼错误 后来他发现调不出来了 然后调了快2h,写个暴力对拍才发现pushup写的是萎的。 这题其实 阅读全文
posted @ 2017-07-14 23:08 zcysky 阅读(1260) 评论(0) 推荐(1)
摘要:莫队,每次询问的是两个区间,就把区间拆开,分开来算就好了。 借鉴了rank1大佬的玄学排询问的姿势。 阅读全文
posted @ 2017-07-07 20:05 zcysky 阅读(895) 评论(0) 推荐(0)
摘要:树剖,可以相当于一个染色问题,以及询问先前节点的染色个数。 把第二种操作离线掉,然后用线段树模拟即可。 阅读全文
posted @ 2017-07-06 19:56 zcysky 阅读(266) 评论(0) 推荐(0)
摘要:NOI2012-超级钢琴的升级版。 用线段树维护最小值及其出现位置,接下来就跟超级钢琴一个做法了。 阅读全文
posted @ 2017-07-05 20:45 zcysky 阅读(405) 评论(0) 推荐(0)
摘要:没错,一定是无聊到一定境界的人才能干出这种事情。 这个无聊的zcysky已经不满足于用后缀平衡树求sa了,他想用sam试试。 我们回顾下sam的插入过程,如果我们从最后一个state沿着suffix link向上爬parent tree 那么我们就可以遍历这个sam的所有后缀。 那么我们把插入的时候 阅读全文
posted @ 2017-06-22 16:30 zcysky 阅读(1107) 评论(0) 推荐(1)
摘要:后缀平衡树裸题。 后缀平衡树呢,实际上是一个很naive的东西。就是用平衡树维护后缀数组。 这样的话就可以支持在最前端插入一个字符(相当于插入新的后缀) 每次比较节点的tag是O(1)的,所以可以快速的支持插入和查询。 为了保证重构的复杂度,后缀平衡树必须使用重量平衡树。 如替罪羊树,Treap,W 阅读全文
posted @ 2017-06-21 10:41 zcysky 阅读(369) 评论(0) 推荐(0)
摘要:ETT模版题。 真正的Eular-Tour-Tree维护的是树的欧拉序。 由于各种原因,没人知道怎么维护欧拉序,所以我写的是个假的,维护dfs序的。 本质还是用Splay维护序列。 然后因为我常数太差,压着线跑过去的…… 阅读全文
posted @ 2017-06-20 19:49 zcysky 阅读(391) 评论(0) 推荐(0)
摘要:又打了一场EDU,感觉这场比23难多了啊…… 艹还是我太弱了。 A. 随便贪心一下。 B. 预处理一下x,y的幂次就随便做了。 C.推一下结论就行了。 D. 按照官方题解做法dp一下就行。 E.用动态开点线段树维护一下(因为值域过大) F. 这tm做cf都能碰到原题,日哦。 bzoj4025。 可以 阅读全文
posted @ 2017-06-17 17:30 zcysky 阅读(252) 评论(0) 推荐(0)
摘要:题号莫名喜感。 倒序建Trie,dfs这棵Trie,贪心一下,每次按照size排序计算贡献就好。 阅读全文
posted @ 2017-06-17 07:50 zcysky 阅读(370) 评论(0) 推荐(1)
摘要:补了下前置技能…… 题意就是求一段区间的权值和前k大的子序列的和。 把段扔进优先队列 每次拿出来之后按照所选择的j进行分裂 阅读全文
posted @ 2017-06-16 20:51 zcysky 阅读(227) 评论(0) 推荐(0)
摘要:昨晚听说有教做人场,去补了下玩。 大概我的水平能做个5/6的样子? (不会二进制Trie啊,我真菜) A. 傻逼题。大概可以看成向量加法,判断下就好了。 B. 找符合要求的最小三元组乘积出现次数。 sort一下随便搞搞就行了。 C. 第一反应数位dp,反正也可做。 数位记忆化搜索大概也行的样子。 但 阅读全文
posted @ 2017-06-16 17:55 zcysky 阅读(357) 评论(0) 推荐(0)
摘要:把Parent Tree拓扑排序下,然后从下往上合并。 具体的看官方题解啦~ 阅读全文
posted @ 2017-06-15 20:21 zcysky 阅读(180) 评论(0) 推荐(0)
摘要:原意是把sam那一堆做完…… 这题还是很sb的,$\sum{maxlen(s)-minlen(s)+1}$就是本质不同的子串数量 然后因为suffix link的性质,maxlen[fa[s]]=minlen[s]-1 所以等价于求$\sum{maxlen(s)-maxlen(fa[s])}$ 这个 阅读全文
posted @ 2017-06-15 14:59 zcysky 阅读(166) 评论(0) 推荐(0)
摘要:这题有毒…… 原本只是想复习下sam,于是写…… 后来发现自己傻了不知道怎么维护endpos…… 一气之下直接kmp拉倒,mdzz UPD:现在我好像会维护endpos了…… 阅读全文
posted @ 2017-06-15 11:14 zcysky 阅读(573) 评论(0) 推荐(0)
摘要:这题嘛…… 子树询问什么的,直接dfs序线段树无脑写,是吧…… 然后几分钟之内zcy就写出了这样的东西: 对于sb的我来说,写这种模版最快不过了……在真正的省选考场上,写这种东西的选手恐怕也是最多,写起来也是最稳的吧…… 然而其实还有一种O(na(n))的做法吊打我。 就是巧妙地离线用并查集维护标记 阅读全文
posted @ 2017-06-14 10:52 zcysky 阅读(207) 评论(0) 推荐(0)
摘要:一道奇奇怪怪的数据结构题? 把树线性化,然后分块维护吧。 为了加速,求和用树状数组维护每个块的值。 阅读全文
posted @ 2017-06-13 17:26 zcysky 阅读(310) 评论(0) 推荐(0)
摘要:QwQzcysky真是菜死了,这是我刚上高一的时候坤爷在夏令营讲的,可是今天才切掉…… 想想也神奇,一个2016.11才学会线段树的菜鸡,夏令营的时候居然听过Segment-Tree-Beats? 所以我们来看下这个神奇的Segment-Tree-Beats. 我们维护一个神奇的标记二元组(x,y) 阅读全文
posted @ 2017-06-13 09:28 zcysky 阅读(331) 评论(0) 推荐(0)
摘要:用魔法平衡树的实现! 反正没人会看的。 阅读全文
posted @ 2017-06-11 21:25 zcysky 阅读(195) 评论(0) 推荐(0)
摘要:#include #define N 300005 #define rat 4 using namespace std; struct Node{ int size,val,rev; Node *lc,*rc; Node(int s,int v,Node *a,Node *b):size(s),val(v),lc(a),rc(b),rev(0){} Node(){... 阅读全文
posted @ 2017-06-11 08:34 zcysky 阅读(309) 评论(0) 推荐(0)
摘要:看有没有人能发现咯。 阅读全文
posted @ 2017-06-09 18:13 zcysky 阅读(345) 评论(0) 推荐(0)