随笔分类 - 数据结构
摘要:$n \leq 100000$个矩形,一个一个覆盖在坐标系上,每个颜色都不一样,问最后能看到几种颜色。 由于后面的颜色可以覆盖前面的颜色,可以把颜色与时间联系上,第$i$个矩形颜色$i$来把时间维变成Max,接下来就是二维操作。 把矩形差分后按$x$排序可以得到一个y轴上的区间操作:区间加上或删除某
阅读全文
摘要:$n \leq 100000$个点,$m \leq 2000000$条边,给点分组,两个点能在不同组必须两点之间有边,问最多分多少组以及每组人数。 条件翻译下变成两点之间没边必须在一个组,于是就可以$n^2\alpha(n)$轻松过掉这题。 好的严肃。把复杂度转到$m$上,想一种跟$m$有关的暴力:
阅读全文
摘要:$n \leq 1e5$的树,$m \leq 1e5$个操作:链加;换根;查子树最值。 链剖:随便选个根,换根就记一下现在根。查子树最值时,只有原来的根到现在根这段的子树信息是怪怪的,但也只是挑掉一段子树而已,相当于查dfs序中前缀和后缀的最值。 LCT:不大会。。
阅读全文
摘要:$n \leq 100000$的序列支持$q \leq 100000$个操作:区间加;区间除下取整;求区间和;求区间Min。数字$-1e9 \leq a_i \leq 1e9$,区间加$-1e4 \leq c \leq 1e4$,除数$2 \leq d \leq 1e9$。 线段树。为了不除可以这样
阅读全文
摘要:$n \leq 200000$的序列,支持以下$q \leq 4e4$个操作:区间异或$k$;查询区间能异或出多少不同的数。数字$0 \leq a_i \leq 1e9$。 大概是要区间线性基。区间修改用差分。异或也是可以差分的:$b_i=a_i \ \ xor \ \ a_i-1$,则$a_l,a
阅读全文
摘要:$n \leq 50000$的树,有点权$\leq 1e13$,$q \leq 400000$次操作,有两种操作:从$s$跳到$t$每次$k$步,不到$k$步直接跳到$t$,每次把经过的点取根号;同样的跳法,对经过的点求和。 首先一个数根号没几次就变0了因此可以大力修改。根号大力搞,设块大小$S$,
阅读全文
摘要:$n \leq 100000$的树,有点权,$m \leq 100000$个操作:链加一非负数;查链上绝对值之和。初始数字$-1e8 \leq a_i \leq 1e8$,加的数字$0 \leq d \leq 1e8$。 因为一直加正数所以负数变正数只会发生$n$次,每次发生这件事时暴力改即可。链剖
阅读全文
摘要:$n \leq 100000$个点,在$0 \leq x \leq 39989$,$0 \leq y \leq 1e9$的坐标系中,在线进行以下操作:加入一条线段;查询$x=k$这条直线上最上面的线段是谁。 看范围知道是线段树(雾) 区间记录区间的中点处最靠上的线段,这样询问的时候把线段树走到那个点
阅读全文
摘要:$n \leq 500000$个数字,给实数$k$,问用这些数字填上的,满足$d_i \geq d_{\left \lfloor \frac{i}{k} \right \rfloor}$的字典序最大的序列。 如果数字不同的话按后序遍历从大到小填就行了。 如果数字相同的话就不行。比如输入4 2 1 1
阅读全文
摘要:$n \leq 100000$的数列给$m \leq 300000$的询问,每次问一个区间里选两个数差的最小值。数字$\leq 1e9$。 根号算法: 无脑莫队加个平衡树或者权值线段树来查前驱后继是$n \sqrt{n} log_2n$的。 如果只有删除可以用链表实现,所以想办法去掉插入操作。对左端
阅读全文
摘要:$n \leq 100000$$,$2*n$的网格资磁以下操作:两个相邻点连边;两个相邻点断边;两个点查连通性。 线段树还能这么用也是想不到QAQ 线段树维护一下连通性。一个区间矩形有四个点,六对连通性记一下(其实记四对也行),可以合并。由于修改边是单修,开仨数组记记即可。 查询的时候注意,如果两个
阅读全文
摘要:$n \leq 100000$个飞机在坐标轴上,给坐标给速度,坐标速度异号,还有一个风速在$[-w,w]$区间,$w$比最小的速度绝对值要小。由于风速不知道,所以问有多少对飞机可能在原点相遇。 思维定势:$\frac{x_i}{v_i+v}=\frac{x_j}{v_j+v}$,$v$是风速,然后推
阅读全文
摘要:$n \leq 200000$的树,有点权,给$m \leq 200000$个询问,每次问$x,k$,$x$向上走$k$步到的点的子树内和$x$同层的,除了$x$以外的点的点权众数。 询问挂点上,全图搜一次。每层开个线段树,合并的时候保留孩子里最长的一个,其他的暴力并过来。 复杂度:看起来是启发式合
阅读全文
摘要:$n \leq 100000$的01串(其实啥串都行),给$m \leq 100000$个询问,每次问$[L,R]$,回答:前缀$L,L+1,...,R$中,任意两个的最长公共后缀的长度。 这种前缀后缀的询问,无脑先建个后缀树先,反串的后缀树正串的sam哦。 然后现在问题就是:每次问一个区间的点集,
阅读全文
摘要:$n \leq 100000$的$a$序列和$m \leq n$的$b$序列,问$a$有多少子串和$b$能匹配。匹配:俩串长度相同,且俩串的数存在一种一一对应的关系使得每一对的和都$>=h$。 把$b$排个序,这样一个$a_i$就能配$b$的一个后缀。设$a_i$能配上后缀$p_i$。一个$b_j$
阅读全文
摘要:$n \leq 5e5$,$m \leq 5e5$的无向边权图,$q \leq 5e5$个询问,每次问一系列边是否能同时存在于某棵最小生成树上。 一条边在最小生成树上,当比他小的边都加入后,加入他会使连通块数-1,也就是他两端的点在加入比他小的所有边后仍不在一起。 于是乎把所有询问的所有边排序,每次
阅读全文
摘要:$n \leq 100000$的树,每个点有个糖,$m \leq 100000$种糖,每种糖好吃度$V_i$,吃$j$颗$i$糖会得到愉悦值$V_i*W_j$,$q \leq 100000$个操作:修改一个点上的糖;查询某条链上吃糖的愉悦值。 首先看看能不能用啥数据结构维护。麻烦。好上莫队。 树上的
阅读全文
摘要:$n \leq 50000$,$q \leq 50000$,$n$的数列$q$个询问,每次问某个区间只交换相邻俩数,要交换几次才能升序。数字范围不知反正要离散化。 注意不要学了莫队就把离线题套路忘了,询问右端点排序也是常用快捷方法。 好那我们试试。不会。好上莫队。 每次增加一个数,答案加上比他大(在
阅读全文

浙公网安备 33010602011771号