• 博客园logo
  • 会员
  • 周边
  • 新闻
  • 博问
  • 闪存
  • 众包
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
 






Storm_Spirit

不忘初心,方得始终。
 
 

Powered by 博客园
博客园 | 首页 | 新随笔 | 联系 | 订阅 订阅 | 管理

随笔分类 -  数据结构

 
CodeForeces 842d Vitya and Strange Lesson ——(带lazy标记的01字典树)
摘要:给一个序列,每次操作对这个序列中的所有数异或一个x,问每次操作完以后整个序列的mex值。 做法是去重后构建01字典树,异或x就是对root加一个x的lazy标志,每次pushDown时如果lazy的这一位是1,则交换左右儿子。找mex的话只要每次往左走,如果左子树是满的,则往右走,并且加上左边相应造 阅读全文
posted @ 2017-11-11 17:14 Storm_Spirit 阅读(265) 评论(0) 推荐(0)
HDU 6086 Rikka with String ——(AC自动机 + DP)
摘要:这是一个AC自动机+dp的问题,在中间的串的处理可以枚举中断点来插入自动机内来实现,具体参见代码。 在这题上不止为何一直MLE,一直找不到结果(lyf相同写法的代码消耗内存较少),还好考虑到这题节点应该不会过多,可以少开一点节点数。 代码如下: 阅读全文
posted @ 2017-08-21 15:57 Storm_Spirit 阅读(250) 评论(0) 推荐(0)
Codeforces Round #420 (Div. 2)
摘要:A题,水题,只要暴力即可,要注意的是题意要理解清楚。 B题,枚举每一个x作为矩形的右边,那么其中的贡献是可以用等差数列累和公式计算的,最后对所有可能的答案取一个max即可。该题很友好,使用floor没有被卡精度= =。 C题,由于题目是保证了一定能够使得满足要求,那么如果remove的时候这个栈不是 阅读全文
posted @ 2017-07-02 16:49 Storm_Spirit 阅读(162) 评论(0) 推荐(0)
Egyptian Collegiate Programming Contest (ECPC 2015) C题 Connecting Graph
摘要:这题上次用的是线性求LCA过的,数据比较水,当时没有被T掉(不过线性的做法是在线的)。现在重新的分析一下这个问题。在所有的操作都进行完毕以后,这个图形肯定会变成一棵树,而我们的要求是在这棵树上的一条链上求出边权值t的最大值,那么很显然的可以使用树链剖分来解决这个问题(在做这题之前我还不知道LCA也可 阅读全文
posted @ 2017-04-16 09:52 Storm_Spirit 阅读(195) 评论(0) 推荐(0)
2015-2016 ACM ICPC Baltic Selection Contest
摘要:这是上礼拜三的训练赛,以前做过一次,这次仅剩B题没补。题目链接:https://vjudge.net/contest/153192#overview。 A题,水题。 C题,树形DP,其实是一个贪心问题,比如要取max的话,从根往下的肯定是要依次放max门,因此取一条能够获得最大值的一路放下max门即 阅读全文
posted @ 2017-03-13 17:56 Storm_Spirit 阅读(174) 评论(0) 推荐(0)
Codeforces Round #365 (Div. 2)
摘要:A题,水题。 B题,题意挺简单的,但是要仔细。 C题,以前做过一次,不过这次还是不会= =。具体方法见代码: 1 #include <stdio.h> 2 #include <algorithm> 3 #include <string.h> 4 #include <iostream> 5 #incl 阅读全文
posted @ 2017-02-12 12:08 Storm_Spirit 阅读(145) 评论(1) 推荐(0)
Codeforces Round #367 (Div. 2)
摘要:AB都是水题。 C题,DP题。没能够独立的做出来,但是会了以后感觉还是蛮简单的= =。代码如下: 1 #include <stdio.h> 2 #include <algorithm> 3 #include <string.h> 4 #include <iostream> 5 #include <m 阅读全文
posted @ 2017-02-10 15:15 Storm_Spirit 阅读(103) 评论(0) 推荐(0)
Codeforces Round #368 (Div. 2)
摘要:A题,水题。 B题,一开始看题目觉得蛮复杂的,其实很简单。存好图后找可以储存的点,再遍历这些点附近可以开店的点,维护一下答案的最小值即可。 C题,推不出公式= =。见代码好了: 1 #include <stdio.h> 2 #include <algorithm> 3 #include <strin 阅读全文
posted @ 2017-02-09 13:51 Storm_Spirit 阅读(108) 评论(0) 推荐(0)
Codeforces Round #361 (Div. 2)
摘要:我以为这场是昨天没做完的那场= =,结果是以前没做完的一场。。前3题以前做过了。也懒得再看一遍了= =。虽然前面的题感觉再做一遍也不一定做的出的样子- -。不过D和E都是好题,补这场不亏。 D题,题意是问有多少区间,这段区间里面,在a数组中的max和在b数组中的min是相同的。做法是枚举左端点,考虑 阅读全文
posted @ 2017-02-01 14:34 Storm_Spirit 阅读(144) 评论(0) 推荐(0)
POJ 1741 Tree ——(树分治)
摘要:思路参考于:http://blog.csdn.net/yang_7_46/article/details/9966455,不再赘述。 复杂度:找树的重心然后分治复杂度为logn,每次对距离数组dep排序复杂度为nlogn,而找重心的复杂度为dfs的复杂度——O(n),因此总的复杂度为O(nlognl 阅读全文
posted @ 2017-01-29 15:22 Storm_Spirit 阅读(147) 评论(0) 推荐(0)
CodeForces 754D Fedor and coupons ——(k段线段最大交集)
摘要:还记得lyf说过k=2的方法,但是推广到k是其他的话有点麻烦。现在这里采取另外一种方法。 先将所有线段按照L进行排序,然后优先队列保存R的值,然后每次用最小的R值,和当前的L来维护答案即可。同时,如果Q的size()比k大,那么就弹出最小的R。 具体见代码: 另外,输出方案的方式也值得注意一下。 阅读全文
posted @ 2017-01-10 19:29 Storm_Spirit 阅读(180) 评论(0) 推荐(0)
ACM之路(20)—— Splay初探
摘要:由于数据结构上老师讲了AVL树的rotate,然后去学了一下treap和Splay,这些数据结构还真是神奇啊! treap暂时只知道名次树的作用(就是一段动态变化的有序数列,找第K大的元素,用set显然是O(n)的。。)。 好,正式介绍SplayTree这个神奇的数据结构:暂时的理解是,用于解决一些 阅读全文
posted @ 2016-12-19 20:40 Storm_Spirit 阅读(400) 评论(0) 推荐(0)
ACM之路(19)—— 主席树初探
摘要:长春赛的 I 题是主席树,现在稍微的学了一点主席树,也就算入了个门吧= = 简单的来说主席树就是每个节点上面都是一棵线段树,但是这么多线段树会MLE吧?其实我们解决的办法就是有重复的节点给他利用起来,具体见幻神博客。 不妨以1~n上的求任意区间第k小的问题,就是上面博客中所写,我们从1访问到n的预处 阅读全文
posted @ 2016-10-04 22:51 Storm_Spirit 阅读(271) 评论(0) 推荐(0)