考试拿到题,一看,这不是权值线段树吗? 思路 使用线段树每个节点维护该区间内元素出现次数。 根据题目,对于加入、删除元素,我们可以单点修改(\(+1\)、\(-1\)),对于输出,我们可 随便 遍历找一个出现次数为 $1$ 的元素即可。 代码 具体解释见注释 #include<bits/stdc++ ...
分类:
其他好文 时间:
2020-06-07 10:45:19
阅读次数:
52
同 Luogu P3373 注意如果写 pushup 的话不要越界 注意更新 sum 值的位置 # include <iostream> # include <cstdio> # define MAXN 100000+5 # define LL long long using namespace s ...
分类:
其他好文 时间:
2020-06-05 19:30:00
阅读次数:
44
福建省队集训 20180709 green 对于排列,r-l+1=max-min+1 可以用单调栈+线段树,维护以当前点位右端点的时候的max-min+l,总修改次数是O(n)的 然后出现10次也差不多,分成10段然后每段有自己的式子,每个点维护10个信息分别查询即可。 equip 给m条边2n个点 ...
分类:
其他好文 时间:
2020-06-05 13:28:25
阅读次数:
59
看了题,A,B题都是lojround原题(A题其实也是JOI2013原题)。 而且部分分都一样。。。。。。。。。。。。。。。。。。 但是B忘了。 A题就是个扫描线+单调栈+线段树。 随便写一下就跳到C C题暴力死活不会,但是20分是送的就写了。 从“数列的相似性”想了很久,但是还是不会,十分自闭。 ...
分类:
其他好文 时间:
2020-06-05 13:12:02
阅读次数:
54
删数 对于任意一个数列,如果能在有限次进行下列删数操作后将其删为空数列,则称这个数列可以删空。一次删数操作定义如下: 记当前数列长度为 \(k\),则删掉数列中所有等于 \(k\) 的数。 现有一个长度为 \(n\) 的数列 \(a\),有 \(m\) 次修改操作,第 \(i\) 次修改后你要回答: ...
分类:
其他好文 时间:
2020-06-03 20:29:52
阅读次数:
69
1057 Stack (30分) Stack is one of the most fundamental data structures, which is based on the principle of Last In First Out (LIFO). The basic operatio ...
分类:
其他好文 时间:
2020-06-03 00:45:45
阅读次数:
80
题意 bzoj 做法 考虑插入$[l,r]$ 在线段树内查询包含$l/r$的,到达一个节点,将节点集合与其合并,仅保留该点(带权并查集) 将$(l,r)$内插入线段树,每个节点维护一个集合 考虑查询$a\longrightarrow b$ 若不在一个集合内,还有一种可能就是$a$被$b$的集合包含 ...
分类:
其他好文 时间:
2020-05-31 18:18:16
阅读次数:
71
LINK:波波老师 LINK:同bzoj 1396 识别子串 不过前者要求线性做法 后者可以log过。实际上前者也被我一个log给水过了. 其实不算很水 我自认跑的很快罢了. 都是求经过一个位置的最短的 在整个字符串中只出现过一次的子串。 SAM很容易完成这个东西. 考虑对于计算每个节点的贡献 容易 ...
分类:
其他好文 时间:
2020-05-31 15:55:57
阅读次数:
53
数学计算(线段树乘法) Describe 小豆现在有一个数 x,初始值为 1 。 小豆有 Q次操作,操作有两种类型: 1 m: x=x×m,输出 xmodM; 2 pos: x=x/ 第 pos 次操作所乘的数(保证第 pos 次操作一定为类型 1,对于每一个类型 1 的操作至多会被除一次),输出 ...
分类:
其他好文 时间:
2020-05-27 23:13:18
阅读次数:
98
题目链接 考虑将每个矩形看做两次操作,分别是在$Y$轴上叠加线段和去除线段。按$X$坐标排序后依次访问扫过。 注意:本题中,坐标表示的是直角坐标系的整点坐标,也即我们计算的是连续的面积,不过这里矩形都是水平的。 那么离散化一波,每个离散点表示到它的后继之间的线段。 考虑使用线段树,维护“覆盖计数”和 ...
分类:
其他好文 时间:
2020-05-27 22:01:47
阅读次数:
80