随笔分类 - 数据结构_线段树
摘要:线段树维护连通性
阅读全文
摘要:好题 思路:线段树优化建图+拓扑DP or 差分约束(都差不多); 提交:3次 错因:眼瞎没看题,Inf写的0x3f3f3f3f 题解: 类似差分约束的模型,$a define R register int define ll long long using namespace std; names
阅读全文
摘要:思路:数据结构 提交:Inf次 题解: 树状数组套主席树 考虑静态区间第k大是一个前缀主席树,但是如果修改是 $O(nlogn)$ 的,查询时 $O(logn)$ ,考虑去均衡两部分的复杂度,如何均衡的维护前缀和?于是上了树状数组。于是乎主席树 $i$ 维护的是 $[i lowbit(i)+1,i]
阅读全文
摘要:思路:线段树+转化 提交:2次 错因:由于智障没有判断左右端点ORZ 题解: 主要是如何把区间除下取整转化成更适合线段树的一些操作。 给定除数 $d$ ,对于一段区间,若区间只包含 $k d$ 与 $k d 1$ ,我们可以转化成区间减,因为此时做完除法,新的数与原数的差相等,即 $$k d (k
阅读全文
摘要:思路:分块 提交:2次(第一次的求解有问题) 题解: 设块长为$T$,我们开$N/T$个单调栈,维护每一块的上升斜率。 修改时暴力重构整个块,$O(T)$ 求解时记录一个最大斜率$lst$,然后块内二分,求出能看见几个,同时更新$lst$ 时间复杂度$O(N*(T+\frac{N}{T}*log_2
阅读全文
摘要:卸载:把子树清空; 安装:把自己到$1$的链改为$1$ 2019.07.03
阅读全文
摘要:RT. 2019.07.03
阅读全文
摘要:只会两个$log$的$qwq$ 我们二分答案:设答案为$ans$,则我们把$a[i]<=ans$全部设成$0$,把$a[i]>ans$全部设成$1$,扔到线段树里,这样区间排序(升序)就是求出$[l,r]$中$0$(或$1$)的个数$cnt$,然后对区间$[l,l+cnt-1]$赋值为$0$,对$[
阅读全文
摘要:当初竟然看成子串了$qwq$,不过老师的$ppt$也错了$qwq$ 由于子序列一定是的排列,所以考虑插入$1$到$m$到$n-m+1$到$n$; 如何判断呢?可以用哈希$qwq$; 我们用线段树维护哈希值,合并时用就把左子树的哈希值$x[ls]$在$B$进制下左移$sum[rs]$位,即$x[tr]
阅读全文
摘要:扫描线终于看懂了。。。咕咕了快三个月$qwq$ 对于所有的横线按纵坐标排序,矩阵靠下的线权值设为$1$,靠上的线权值设为$-1$,然后执行线段树区间加减,每次的贡献就是有效宽度乘上两次计算时的纵坐标之差。 $cnt$数组记录每个位置被覆盖的次数,$sum$数组用来记区间总长度(即有效宽度),所以每一
阅读全文
摘要:太神仙了这题。。。 原来的地面上升,可以倒着操作(时光倒流),转化为地面沉降,最后的答案就是每个点的深度。 下面的1,2操作均定义为向下沉降(与原题意的变换相反); 首先这个题目只会操作前缀和后缀,并且只会把前缀中的数(纵坐标)变小(2操作),后缀中的数(横坐标)变大(1操作),所以具有单调性,可以
阅读全文
摘要:据说某谷数据十分水。。。但幸好BZOJ上也过了。。。话说我记得讲课时讲的是奇奇怪怪的离散化。。但现在突然觉得什么都可以线段树瞎搞了。。。QAQ 直接就是这个区间有没有被覆盖,被覆盖直接return; 如果出现修改,那么就说明它能被看见,++ans 短的一批的线段树(去了不必要的操作码量还是很小的。。
阅读全文
摘要:咕咕了。。。于是借鉴了小粉兔的做法ORZ。。。 其实就是维护最大子段和的线段树,但上面又多了一些操作。。。。QWQ 维护8个信息:1/0的个数(sum),左/右边起1/0的最长长度(ls,rs),整段区间中1/0的连续最长长度(mx)。 于是对于各个操作,我们有了一些tag。。。 tg1[]是区间赋
阅读全文

浙公网安备 33010602011771号