什么是“线段树”?线段树是一个复杂的数据结构,比较难理解,也比较难解释清楚。在我将这个数据结构反复学习了五遍的时候,我终于有了信心写出这篇介绍线段树的文章。希望大家能够掌握这种数据结构。这篇文章比较长,建议大家耐心阅读,好好消化吸收哦~~前置内容学习线段树前,你需要掌握二叉搜索树,不太了解的小伙伴,可以看看小灰之前发布的红黑树漫画,前半部分讲解了二叉搜索树:漫画:什么是红黑树?我只补充一个内容,就
分类:
其他好文 时间:
2020-11-18 12:14:31
阅读次数:
3
原本我想使用无限叠if-else的方式估计能解决, 但这样总归是不够优雅。 使用点斜式在斜率上可能存在问题, 为了少写判断, 使用一般式描述直线。并且将坐标带入一般式就能直观判断点与直线的位置关系, 以此判断线段的位置关系 完成关系判断后, 剩下的事就相当于求直线交点, 直接解方程又得判断条件, 不 ...
分类:
其他好文 时间:
2020-11-17 12:53:56
阅读次数:
7
祝大家CSP$rp++$ 😃 函数定义了两遍 $bool$函数返回值一直为$true$:忘传参数了 线段树没有$build$ 把$i,l$写成$1$了,或者循环里枚举$i$写成$0,1$了 $RE:for$循环里$i--$写成$i++$ 链前里$i$和$v$写反 用^$1$表示反向边时,下标从$0 ...
分类:
其他好文 时间:
2020-11-07 17:11:07
阅读次数:
23
恢复内容开始 感谢大佬的博客,受益匪浅 https://blog.csdn.net/weixin_42469716/article/details/102938021?ops_request_misc=%257B%2522request%255Fid%2522%253A%25221604317568 ...
分类:
其他好文 时间:
2020-11-07 16:41:07
阅读次数:
22
作者:sshwy 黄队稳了! 引言 首先,在具备基础的线段树知识后,我们以结构化的语言描述线段树维护序列区间变动信息的方式: 首先有若干种对序列区间的数据的操作$\alpha_1,\ldots,\alpha_k$,以及若干种数据分析操作(求值)\(\beta_1,\ldots,\beta_l\)。在 ...
分类:
其他好文 时间:
2020-11-07 16:39:36
阅读次数:
16
链接 显然是用map映射一下,然后用线段树查询区间最值,如果给出的两年中有一年未知,二分找到它附近的位置(如果是x未知找第一个大于x的位置,如果是y未知找最大的小于y的位置) 然后再加亿点点细节: 我们就可以用这几个量来判断。 rain[i]:i位置的降雨量 year[i]:i位置的年份 x,y:题 ...
分类:
其他好文 时间:
2020-11-04 18:39:08
阅读次数:
16
知识点:线段树 原题面:Codeforces 题意简述 给定一长度为 \(n\) 的数列 \(a\),给定 \(m\) 次询问。 每次询问给定区间内,出现过偶数次的权值 的异或和。 $1\le n,m\le 106$,$1\le a_i\le 109$。 分析题意 根据异或的自反性,一个区间内所有数 ...
分类:
其他好文 时间:
2020-11-02 10:11:25
阅读次数:
19
原题: 题意: 给你m个灯,每个等有一个周期ti,和一个亮度xi,第i个灯先亮ti秒,再灭ti秒,再亮ti秒,每次亮度都是xi 同一时间如果有多个灯亮,那么场地亮度是最大值 给你一个n,问你从第1秒直到第n秒的每一秒,场地的亮度是多少 朴素的想法: 对于每个灯,枚举它亮的区间,用线段树区间取max取 ...
分类:
其他好文 时间:
2020-11-01 22:21:56
阅读次数:
79
区间符合条件的充要条件是$Max-Min+1=Cnt$其中$Max,Min,Cnt$分别为区间最大值,最小值,不同的数的个数。 变形后得$Max-Min-Cnt+1=0$ 考虑枚举右端点,在线段树上维护左端点$Max-Min-Cnt+1$的最小值。 $Min,Max$可以用单调栈维护,记$last_ ...
分类:
其他好文 时间:
2020-11-01 22:11:08
阅读次数:
14
1. HDU1166 敌兵布阵 题目链接 题意:单点更新+区间查询(求和)。 树状数组 (218ms) #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> usi ...
分类:
其他好文 时间:
2020-11-01 21:18:27
阅读次数:
19