首页 > 其他分享 >专题2——进阶数据结构

专题2——进阶数据结构

时间:2023-10-05 15:48:18浏览次数:33  
标签:取模 专题 进阶 二进制 线段 异或 01 即可 数据结构

UVA11997

考虑一个简化版,P1631,这个版本使用堆维护即可。

这个版本怎么做呢?依次合并每一行。

P6033

有一个性质,就是每一次合成出来的都是单调递增的,所以每次取出合的和没和的的最小的两个互相比较即可。

但是要预先排序,桶排即可。

P9565

考虑维护 \(60\) 个并查集,也就是维护对于每一位的连通性,然后判断是否有一条路径就是判断

\[\sum_{i=0}^{59} 2^i\operatorname{connected}(u,v) \geq V \]

但是实际上我们不是这么做的,而是考虑在二进制下,去除两者二进制的 \(\operatorname{LCP}\) 以后是否 \(val\) 的最高位是 \(1\),但是 \(V\) 的是 \(0\)。

P6812

维护差分数组即可,先辈就是非严格单调递增序列,查询区间最小值即可,都是线段树基本操作。

P5522

你发现一件事情,\(n=1\) 可以使用无敌的线段树解决,\(n \le 30\) 其实可以用 \(30\) 棵线段树解决。

但是线段树常数过大,于是我们开了树状数组,因此直接干掉!

SP1716

妙妙题。

最大连续子段和的分治做法拍到线段树上即可。

CF1073D

转圈,转圈,转圈圈!

转一圈,取模,转一圈,取模。

取模至少减半,所以复杂度是对的。

P8306

板子。

P4551

发现一条路径就是两点到根的异或和的异或值。

所以拍一个 01-trie 求个最大异或对即可。

P6587

难题。

有两种做法,一种是根号分治,另外一种就是转完二进制以后,发现所操作的区间在 01-trie 上是一个子树,不过这颗 01-trie 需要二进制翻转以后建。

那么子树加,子树和。

把树拍平了,就是区间修改区间查询了。

P9364

限制是很强的。

你发现长度大于 \(450\) 的明显没用了,你发现按照长度排序一下,暴力即可。

标签:取模,专题,进阶,二进制,线段,异或,01,即可,数据结构
From: https://www.cnblogs.com/acwing-gza/p/17743420.html

相关文章

  • 专题1——贪心
    P9209考虑一个贪心,首先一定总是只有一段连续段。所以答案就是这个样子了。\[\sumw_i+(n-i)\max(l_i,r_i)\]CF1661D从右往左扫一遍,要加就加最牛逼的。维护问题的二阶差分即可。P9378哦宇宙射线!贪心一下,每次让最脆弱的被轰掉。AT_abc254_h问题是相对的,然后考虑优先队列......
  • 专题3——模拟退火
    P1337模拟退火是一门玄学,我发现全看手气,因此,为了避免消耗手气,赛前我只练四道。本题精度要求较高,因此选取较低温度,较高delta,温度下限取到1e-14。P2503这道题目中,随机化才是神。连续分段问题可以dp,这道题目,我们选择random_shuffle后再dp,正确率是很高的,因为最终的答案中,每......
  • 套路的数据结构
    1给定长度为\(n\)的序列\(a,b\)。两种操作:询问区间\([l,r]\),查询\(\max\limits_{i=l}^{r}{\{a_i\timesb_i\}}\)给定\(l,r,v\),区间\(\foralli\in[l,r]\),\(b_i\getsb_i+v\)。分块。修改:整块维护块内最值、李超线段树(维护若干个斜率为\(a_i\)、截距为\(a_i\time......
  • 【数据结构】- 线段树
    线段树简介线段树是可以维护区间信息的数据结构。线段树将每个长度不为\(1\)的区间划分成左右两个区间递归求解,故把整个线段划分为一个树形结构,通过合并左右两区间信息来求得该区间的信息。根据建树方式可分为普通线段树和动态开点线段树。根据区间信息可分为普通线段树......
  • 【数据结构】- 堆
    堆简介堆是可以维护最值的数据结构。其每个节点有一个键值\(val\),堆将节点按键值确定父亲/儿子关系,故把所有节点连为一棵树,通过根找到最值。根据祖先关系可分为两类——大根堆以根节点键值最大,向叶节点递减。小根堆以根节点键值最小,向叶节点递增。根据支持操作可分为堆......
  • 数据结构-并查集
    并查集的使用范围:1.合并集合2.查询两元素是否属于同一集合   高级用法:  3.进行集合划分<带权并查集>  4.连通块块数查询&块内元素个数统计<连通图>  5.撤销合并<可持久化并查集>//本文暂不涉及,我还不会并查集基本操作:#definerep(i,n)for(int......
  • 点赞功能改进-Redis数据结构设计
        ......
  • 线段树专题复习
    今天的主题是线段树专题复习!(什么?是昨天的?不听不听,只要我不说都不知道我鸽了一天!)好了,言归正传,我们来看一下今天的知识点们吧。Part1线段树自己不想讲了,想看的移步其他博客想看踢我,今天没时间了Part2一些优化ZKW线段树俗称重口味线段树,是一种不用递归实现的线段树,常数和......
  • Python入门系列7-函数进阶
    一、函数参数和返回值的作用函数根据有没有参数以及有没有返回值,可以相互组合一共有4种组合方式:1.无参数,无返回值2.无参数,有返回值3.有参数,无返回值4.有参数,有返回值如果函数内部处理的数据不确定,就可以将外界的数据以参数传递到函数内部,如果希望一个函数执行完成后,向外界汇报执行......
  • 数据结构之"顺序表"
    前言......