线段 区间

线段树模板

单点修改,区间查询 给n个数a1,a2,a3,…,an。 支持q个操作: 1 x d,修改ax=d。 2 l r,查询(l,r),并且求出最小值出现了多少次。 输入格式 第一行两个整数n,q(1≤n,q≤2×105)。 接下来一行n个整数a1,a2,…,an(1≤ai≤109)。 接下来q行,每行一 ......
线段 模板

洛谷 P3372 【模板】线段树 1

题目传送门 题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某一个数加上x 2.求出某区间每一个数的和 输入格式 第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。 第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。 接下来M行每行包含3个整数,表示 ......
线段 模板 P3372 3372

CF1336C(挺重要的区间dp)

Kaavi and Magic Spell - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 我们直接考虑如何构造出来的字符串,这个字符串显然只能每次最左端加或者最右端加入。 对于第一个字符,显然每个位置都够能放置,且有两种方案。接着下一个字符加入它的左端或者右端,依次类推。 令 d ......
区间 1336C 1336 CF dp

线段树合并

## 基本思路 线段树合并其实就是简单的暴力合并就可以了。一般是运用于权值线段树。通常是在每个节点都需要要一颗线段树才能维护答案,且有多个节点时,会使用线段树合并。但每个节点的权值不能太大。 ## 具体代码 其实代码理解了之后就是非常简单的了。 ```cpp #include using names ......
线段

线段树进阶拓展

# 前言 进军数据结构! 前置知识:[权值线段树](https://www.luogu.com.cn/blog/bloodstalk/shuo-ju-jie-gou-quan-zhi-xian-duan-shu),但好像我这篇写的不咋地,所以建议网上搜一搜,其实会动态开点就行了,这个也很容易学。 这 ......
线段

大型线段树 - 知识点梳理

# 可持久化线段树 可持久化数据结构可以通过不断重复利用节点,在高效且省空间的情况下建立及存储普通数据结构的多个历史版本并进行查询。因为存在时间轴,因此有时可搭配离线算法使用。 ## 实现方法 _所有树形数据结构的可持久化处理都和这个差不多_ 普通的线段树长这样: ![](https://cdn.l ......
线段 知识点 知识

线段树模板 洛谷P3374 【模板】树状数组 1

题目传送门 题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某一个数加上x 2.求出某区间每一个数的和 输入格式 第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。 第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。 接下来M行每行包含3个整数,表示 ......
模板 线段 数组 P3374 3374

代码随想录算法训练营第三十天| 435. 无重叠区间 763.划分字母区间 56. 合并区间

435. 无重叠区间 要求: 给了多个区间,然后找出来删掉最少的区间数,从而可以让上下的区间不重叠 换个想法: 当前节点和上一个节点如果重叠,那么我就+1,然后缩小上一个节点,如果还是跟上一个节点重叠,那么就证明这个节点也要删除 小技巧: lamda函数不好用,每次比较的时候都会在定义一个cmp函数 ......
区间 随想录 训练营 随想 算法

abc080d <区间重叠>

[D - Recording](https://atcoder.jp/contests/abc080/tasks/abc080_d) ``` // https://atcoder.jp/contests/abc080/tasks/abc080_d #include #include using na ......
区间 080d abc 080 lt

【做题笔记】线性dp——线段树优化

**线段树优化是用来对于$DP$数组区间赋值的。** 主要是区间取最值 来优化线性dp 真没什么可写的了 挂两个题目: [P4644 [USACO05DEC] Cleaning Shifts S](https://www.luogu.com.cn/problem/P4644 "P4644 [USAC ......
线段 线性 笔记

【线段树】【leetcode 729. 我的日程安排表 I】

class MyCalendar { class Seg { int l; int r; boolean val; Seg left; Seg right; public Seg(int x, int y) { this.l = x; this.r = y; this.val = false; th ......
线段 安排表 日程 leetcode 729

高等数学——闭区间上连续函数的性质

# 闭区间上连续函数的性质 $f(x)$ 在 $[a,b]$ 上有定义,若: * $f(x)$ 在 $(a,b)$ 内处处连续。 * $f(a)=f(a+0),f(b)=f(b+0)$(在右端点左连续,在左端点右连续) 则称 $f(x)$ 在 $[a,b]$ 上连续,记为:$f(x)\in c[a, ......
连续函数 区间 函数 性质 数学

线段树 算法笔记

已知一个长度为 $n$ 的序列 $a$,共有 $m$ 次操作,每次操作如下: - 将某区间每一个数加上 $k$。 - 求出某区间每一个数的和。 [Luogu - P3372 【模板】线段树 1](https://www.luogu.com.cn/problem/P3372) 之前学过一个算法叫做[树 ......
线段 算法 笔记

【DS】P9062 [Ynoi2002] Adaptive Hsearch&Lsearch(区间最近点对)

[Problem Link](https://www.luogu.com.cn/problem/P9062) 给定平面上 $n$ 个点,$Q$ 次询问编号在 $[l,r]$ 内的点的最近点对。$n,Q\le 2.5\times 10^5$。 技巧:平面网格化 乱搞都是错的。看见欧几里德距离,想到平面 ......
区间 Adaptive Hsearch Lsearch P9062

线段树

###代码思路 ####主体部分: 初始化,修改,查询 (即build,update,query三个函数) ####辅助部分: 区间值维护,打懒标记,消懒标记 (即push_up,add_tag,push_down三个函数) ####简化部分: 自定义数据类型,左右儿子自助计算 (struct Tr ......
线段

线段树练习

## 1.OJ 30277 nand 不难发现 $nand$ 运算是有结合律的,考虑线段树。 以元素的编号作为下标建一颗线段树 难点在于线段树节点信息 $Push\_Up$ 操作。 记操作 $2, l, r$ 为 $Q (l, r)$,$bak[0/1]$ 分别记录 $a_{l} nand a_{i ......
线段

线段树学习笔记与总结

线段树学习笔记与总结 [toc] # 线段树 ## 引入 我们经常会遇到需要维护一个序列的问题,例如给定一个整数序列,每次操作会修改序列某个位置上的数,或是海间你序列巾某个区问内所有数的和,用“暴力"算法,单点修改的复杂度为 $O(1)$,询问区间和的单次复杂度为 $O(N)$。用前缀和算法,询问区 ......
线段 笔记

线段树

​ # 普通线段树 ~~~cpp const int N = 2e5 + 10; int a[N]; struct info { int sum, maxx, minn; }; struct node { int lazy, len; info val; } seg[N > 1; build(id ......
线段

在一定区间内生成n个随机数

package PTACZW; //随机函数 //输入一个n; //随机出项1~n的数 import java.util.Scanner; import java.util.Random; import java.util.Set; import java.util.HashSet; import ......
随机数 区间

【学习笔记】李超线段树

# 维护一次函数 以 [模板题](https://www.luogu.com.cn/problem/P4097) 为例。 使用线段树维护线段,每个节点维护的都是完全覆盖这个区间的线段。 考虑当前节点已经有线段 $f$,现在加入线段 $g$。 暴力想法是暴力递归每个子区间,把更优的保留,注意到 $f, ......
线段 笔记

abc309f <线段树 + 离散化 + 双指针>

[F - Box in Box](https://atcoder.jp/contests/abc309/tasks/abc309_f) ``` // https://atcoder.jp/contests/abc309/tasks/abc309_f // [unique + lower_bound ......
线段 指针 309f abc 309

线段上的格点数量

平面坐标系上有两个格点$p_1(x_1,y_1)$和$p_2(x_2,y_2)$,求线段$p_1p_2$上除了$p_1,p_2$还有几个格点。 ## 结论 - 当斜率存在时,格点数量为 $gcd(|y_2-y_1|,|x_2-x_1|)-1$ - 当斜率不存在且$y_1\ne y_2$时,格点数量为 ......
线段 数量

CF1842E Tenzing and Triangle - 线段树优化 dp -

题目链接:https://codeforces.com/contest/1842/problem/E 题解: 首先,如果两个等腰三角形相交了,那答案肯定不会更优。因此不会相交。 先考虑一个 $n^2$ 的 dp: 设 $dp_i$ 表示考虑到 $x=i$ 时的最小代价,首先可以先都加一个 $\sum ......
线段 Triangle Tenzing 1842E 1842

李超线段树模板

细节和理解详见注释 题目:https://www.luogu.com.cn/problem/P4097 ```c++ #include using namespace std; #define int long long const int mod1=39989; const int mod2=1e ......
线段 模板

SNP位点前后各50kb区间的基因

#!/usr/bin/perluse strict;use warnings;use Tie::File; my %genes;my @lines; tie @lines, 'Tie::File', 'D:\\Desktop\\3.txt' or die "Cannot open file: $!\ ......
位点 区间 基因 SNP 50

JavaScript通过最小值与最大值区间生成随机数(默认 min 为 0,max 为 10)

function random(min = 0, max = 10) { if (min <= Number.MAX_SAFE_INTEGER && max <= Number.MAX_SAFE_INTEGER) { return Math.floor(Math.random() * (max - ......
随机数 最大值 区间 JavaScript min

李超线段树

### 引入与概括 思考下列问题: 在平面直角坐标系中维护集合,支持下列操作: - 加入一个定义域为 $[l,r]$ 的一次函数。 - 查询所有定义域包含 $x$ 的一次函数的函数值的最值。 我们发现,这可以看成一个区间修改,单点查询的问题,考虑使用线段树维护。 但我们发现传统线段树难以维护,于是李 ......
线段

【关于mysql日期区间范围判断】

mysql version:8.0 1.场景1:根据**起止日期**来判断表内某日期字段是否在此区间内,并获取符合条件的数据: mapper内查询方法中传入两个字段:起,止日期(string且yyyy-MM-dd HH:MM:SS)作为查询参数,而creation_date是具体到秒的datetim ......
区间 范围 日期 mysql

线段树分治 学习笔记

离线算法。在时间轴上建线段树(可能要事先离散化),要维护的东西用 `vector` 什么的挂在线段树的节点上,DFS 一遍线段树,每次进入一个节点就加入要维护的东西,离开时撤销即可。 由于 DFS 的特性,只需支持最近的 `undo`,用 `stack` 可维护。 ......
线段 笔记

关于给定日期范围,生成相应的自然月区间

前言 前段时间,接到公司财务方的需求,原来的出账逻辑中,有一种商家是周结的出账周期,顾名思义,就是每个星期一的凌晨去跑上个星期的账单数据,给商家出账。但是,如果说,如果这个星期如果跨了月,那财务需要把这些账单进行拆分,有一定的工作量,因此想在出账的时候,就进行拆分,方便财务核对。 思路 接到这个需求 ......
区间 范围 日期 自然