题意:从数组a中找出一个区间[l,r]中只出现过一次的数 设pre[i]表示a[i]在i之前的上一次出现,a[i]在[l,r]中只出现过一次等价于pre[i]<l,所以只需在[l,r]中找出一个满足pre[i]<l的i就行了。由于还必须保证i是在[l,r]中最后一次出现,一棵线段树是实现不了的,需要 ...
分类:
其他好文 时间:
2020-05-10 19:04:24
阅读次数:
50
Description: : $1 \le n, Q \le 5e5$ 题解: 这题唯一的难度就是如何知道最小不可询问子草原绿值。 这个相当于问:有一堆数,每个可以用一次或不用,问最小凑不出来的自然数是多少。 首先把这些数排序,假设当前的答案是$p$,初值$=1$ 从小到大加入每个数$x$,若$x ...
分类:
其他好文 时间:
2020-05-09 23:24:27
阅读次数:
71
新学了一下笛卡尔树,这道题是模板题,统计一下以 $x$ 为 lca 的点对就行. 然后统计的话用线段树合并 + 启发式合并就行了. code: #include <bits/stdc++.h> #define N 100006 #define ll long long #define lson s[ ...
分类:
其他好文 时间:
2020-05-08 23:00:23
阅读次数:
78
脑子笨,切不了 Ynoi,只能做比较简单的 ds 题了/kk。 题目链接: "P2572 [SCOI2010]序列操作" 思路很简单,让我们来看看吧。 先不分 $0/1$: 首先发现操作 $4$ 是最难维护的,我们联想线段树求区间最大子段和的套路即可:记录一个 ,`suf(后缀)`来记录从区间第一个 ...
分类:
其他好文 时间:
2020-05-08 22:35:44
阅读次数:
67
题目描述: 分析:虽然是求区间和,但数组是不可变的,不可变 意思是 不涉及线段树更新操作。因此可以不使用线段树这种复杂的数据结构,对于该题不使用线段树效果更好,初始化是O(n)的复杂度,以后每次调用只需要O(1)的复杂度。 // 不使用线段树的解决方案 class NumArray { privat ...
分类:
编程语言 时间:
2020-05-07 00:46:03
阅读次数:
63
板子题.jpg 不同颜色互不影响,所以判断每种颜色有没有奇环就可以了,顺便判一下联不联通.jpg ...
分类:
其他好文 时间:
2020-05-06 21:27:00
阅读次数:
87
前言 由于这篇题解思路并没有什么区别,所以这篇题解的意义在于稍稍更细致地讲下思路和卡常方法。~~估计也只有我常数这么大了~~ 思路 第一感 由于题目要查询到一个点距离为$k$以内的所有点的权值和,一个显然的想法就是对每个点开一个线段树维护权值和,下标维护距离,然后暴力查询。显然这是$MLE+TLE$ ...
分类:
其他好文 时间:
2020-05-06 20:09:16
阅读次数:
75
树状数组简单来看就是一个维护前缀和的数据结构,它相当于线段树去掉了所有的右子树,需要查询时,通过信息拼接来达到查询目的,基础应用为 **(单点更新,区间查询)** **(区间更新,单点查值)** (多了个差分) **(区间修改,区间查询)** (通过数学推导得出我们需要维护两个树状数组) 具体内容参 ...
分类:
编程语言 时间:
2020-05-05 23:35:57
阅读次数:
76
LINK: "Security" 求一个严格大于T的字符串 是原字符串S[L,R]的子串。 容易想到尽可能和T相同 然后再补一个尽可能小的字符即可。 出于这种思想 可以在SAM上先跑匹配 然后枚举加哪个字符 判定即可。 判定s是否在[L,R]中出现过 最快的方法 就是right集了。 这个可以线段树 ...
分类:
其他好文 时间:
2020-05-05 20:11:36
阅读次数:
61
传送门 题意 给定一张$n$个点的有向图,有三种连边方式 $a b$,代表$a$向$b$连一条有向边$a [l,r]$.代表$a$向区间$[l,r]$的所有点连一条有向边$[l,r] a$.代表区间$[l,r]$向$a$的连一条有向边求点$S$到所有点的最短距离 题解 区间图最短路裸题,建出两颗线段 ...
分类:
其他好文 时间:
2020-05-05 09:12:20
阅读次数:
55