码迷,mamicode.com
首页 > 其他好文 > 详细

LibreOJ β Round #2

时间:2018-08-22 16:57:47      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:方便   style   暴力   最大值   计算   str   线段树   操作   upd   

题解:

都是不错的技巧题目

t1暴力就不说了

t2dp是比较显然的

然后发现都是0,1用bitset优化

代码非常短

t3容易发现这个东西在不断合并

于是我们想到启发式合并

存疑:splay启发式合并复杂度

为了比较简单用了set的启发式合并

线段树启发式合并可以做到nlogn

updata的时候计算一下左二子最大值和右儿子最小值的差就行了

t4是看题解的。。

拓展了在trie树上实现排序的思维

其实还是比较简单的

我们对于排序的元素,都搞到trie树上

然后显然就类似于二分查找了

至于全局xor一个数,只要记录一下就可以了,在这一位为1的时候我们交换左右儿子

为了实现方便我们可以不真的交换,只是在这一次改变

对于那些当前还是无序的

我们开个队列记着

怎么支持xor操作呢

f[i][j]表示前i个,第j位为1的有几个

代码调了好久。。trie树没怎么写过。。少搞了最后一层

LibreOJ β Round #2

标签:方便   style   暴力   最大值   计算   str   线段树   操作   upd   

原文地址:https://www.cnblogs.com/yinwuxiao/p/9517794.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!