线段 区间

56. 合并区间

以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 输入:intervals = [[1,3],[2,6],[8,10],[15,1 ......
区间 56

763. 划分字母区间

给你一个字符串 s 。我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。 注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是 s 。 返回一个表示每个字符串片段的长度的列表。 输入:s = "ababcbacadefegdehijhklij" 输出:[9,7,8 ......
区间 字母 763

线段树/树状数组————离散化操作

#include<bits/stdc++.h> using namespace std; typedef long long ll; #define endl "\n" const int N = 1e5 + 5; vector<int>vec; struct BIT { int c[N]; voi ......
线段 数组

无穷区间的正弦波积分

无穷区间的正弦波积分 在傅里叶变换中,从负无穷到正无穷对正弦波进行积分得到的结果为0: $$ \int_{-\infty}^{+\infty} sin(nx)dx=0 $$ 原因在于在信号处理的公式中比如傅里叶变换,默认都以柯西主值积分,所以不存在发散的情况 $$ \int_{-\infty}^{+ ......
正弦 区间 积分

435. 无重叠区间

给定一个区间的集合 intervals ,其中 intervals[i] = [starti, endi] 。返回 需要移除区间的最小数量,使剩余区间互不重叠 。 输入: intervals = [[1,2],[2,3],[3,4],[1,3]] 输出: 1 解释: 移除 [1,3] 后,剩下的区间 ......
区间 435

BM2 链表内指定区间反转

描述 将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转,要求时间复杂度 O(n),空间复杂度 O(1)。例如: 给出的链表为 1→2→3→4→5→NULL, m=2,n=4,返回 1→4→3→2→5→NULL. 数据范围: 链表长度 0<size≤1000,0<m≤n≤size,链 ......
区间 BM2 BM

可持久化线段树

可持久化数据结构 (Persistent data structure) 总是可以保留每一个历史版本,并且支持操作的不可变特性 (immutable)。主席树全称是可持久化权值线段树,给定 nn 个整数构成的序列 aa,将对于指定的闭区间 [l,r][l,r] 查询其区间内的第 kk 小值。 可持久 ......
线段

「学习笔记」可持久化线段树

可持久化数据结构 (Persistent data structure) 总是可以保留每一个历史版本,并且支持操作的不可变特性 (immutable)。 主席树全称是可持久化权值线段树,给定 $n$ 个整数构成的序列 $a$,将对于指定的闭区间 $\left[l, r\right]$ 查询其区间内的 ......
线段 笔记

LeetCode 双周赛 103(2023/04/29)区间求和的树状数组经典应用

本文已收录到 AndroidFamily,技术和职场问题,请关注公众号 [彭旭锐] 提问。 大家好,我是小彭。 这场周赛是 LeetCode 双周赛第 103 场,难得在五一假期第一天打周赛的人数也没有少太多。这场比赛前 3 题比较简单,我们把篇幅留给最后一题。 往期周赛回顾:LeetCode 单周 ......
数组 区间 LeetCode 经典 2023

NC15557 连续区间的最大公约数

题目链接 题目 题目描述 给一个数列共n(n<=100,000)个数,a1,a2,...,an.(0<=ai<=1000,000,000).有q(q<=100,000)个询问。每个询问为l,r(1<=l<=r<=n).求gcd(al,al+1,...,ar). 再求区间[l,r]的子区间中(l<=l ......
最大公约数 公约数 区间 15557 NC

2023-05-03 线性模型与区间DP

线性模型与区间DP 1 线性模型 基本概念 这里的线性是指状态的排布是线性的 线性模型是动态规划中最常用的模型 一般的代码模型是: for(int i = 0; i < n; i++) { for(j = 0; j < i; j++) { // Todo: 更新dp的具体逻辑 } } 最典型的一个例 ......
区间 线性 模型 2023 05

链表内指定区间反转

描述 将一个节点数为 size 链表 m 位置到 n 位置之间的区间反转,要求时间复杂度 O(n),空间复杂度 O(1)。例如:给出的链表为 1→2→3→4→5→NULL, m=2,n=4,返回 1→4→3→2→5→NULL. 数据范围: 链表长度 0<size≤1000,0<m≤n≤size,链表 ......
区间

Chemistry Experiment Codeforces Round 247 (Div. 2) 线段树动态开点,二分

第一次写的时候还不会线段树的动态开点,写了一个是线段树但是是$O(N^2)$的写法,现在用动态开点武装了自己,会了正解$O(qlog n^2)$。首先建立一个权值线段树,但这里的权值很大,通过动态开点去建树来节省空间,对于两种操作: 操作1,常见的动态开点的单点修改 操作2,二分答案,然后在线段树上 ......

吉老师线段树学习笔记(内含吉老师ppt)

Segment tree beats 吉老师线段树 Segment tree Beats!.pdf_免费高速下载|百度网盘-分享无限制 (baidu.com) 为广大oier们提供学习ppt(笑) ==历史最大值未完工== 作用 用于维护区间最值和区间历史最值的线段树 区间最值 引入 问题 给定一个 ......
老师 线段 笔记 ppt

线段树合并/分裂

你说的对,但是你理应会动态开点线段树是什么东西。 合并很简单,两棵线段树一块搜,然后逐个节点合并。 分裂的话可以按照 FHQ Treap 的方法。假如我们将前 $k$ 小和后边分开成 $x,y$,首先看左子树,如果比 $k$ 大那右子树给 $y$,递归左子树,反之左子树给 $x$,递归右子树。 真没 ......
线段

2023-05-02:如果一个正整数每一个数位都是 互不相同 的,我们称它是 特殊整数 。 给你一个正整数 n ,请你返回区间 [1, n] 之间特殊整数的数目。 输入:n = 20。 输出:19。

2023-05-02:如果一个正整数每一个数位都是 互不相同 的,我们称它是 特殊整数 。 给你一个正整数 n ,请你返回区间 [1, n] 之间特殊整数的数目。 输入:n = 20。 输出:19。 答案2023-05-02: 可以通过数字组合和状态压缩的动态规划算法来解决。具体过程如下: 1.对于 ......
整数 区间 数位 数目 之间

线段树

线段树又称区间树, 是一种基于分治思想的二叉树结构, 每个节点代表一段区间 线段树的每个节点代表一个区间 对于每个内部节点 [l,r] , 它的左儿子是 [l,mid] , 右儿子是 [mid+1,r] 用一维数组存整棵树 $$ 对于编号为x的节点 \begin{cases} 父节点: [\dfra ......
线段

区间不同数的个数 二维数点 扫描线 可持久化线段树

二维数点,对于询问的$[l, r]$区间我们只需要统计有多少个数上一次出现的位置$pos$ 满足$pos \leq l$,即可。 template<class T> struct BIT { T c[N]; int size; void resize(int s) { size = s;} T qu ......
扫描线 线段 区间 个数

可持久化线段树模板 区间第k小数,区间前k大数之和

第K小数 // AC one more times #include <bits/stdc++.h> using namespace std; #define fi first #define se second #define pb push_back #define endl '\n' #def ......
区间 线段 大数 之和 小数

区间涂色问题

一眼区间dp 设dp[i][j]为涂完i到j所需的最小次数 当a[i]==a[j]时,dp[i][j] = min(dp[i+1][j-1]+1,min(dp[i+1][j],dp[i][j-1])); 为什么是dp[i+1][j-1]+1,此时会产生一个异想天开的想法,就是取遍历一遍i+1到j-1 ......
区间 问题

区间dp 和 树型dp

##区间dp 递推方程是以区间的形式给出 一般套路 :枚举区间长度 区间端点 区间分界点 然后就是想怎么去对这个区间进行一定的操作 从最原始的地方开始一步步推导方程! for(i=1;i<n;i++)//区间长度为1 { for(j=1;j<=n-i;j++) //区间开头 { for(k=j;k< ......
区间

力扣 228. 汇总区间--python

给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说,nums 的每个元素都恰好被某个区间范围所覆盖,并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中的每个区间范围 [a,b] 应该按如下格式输出: "a->b" ......
区间 python 228

NC200195 区区区间

题目链接 题目 题目描述 $Keven$ 特别喜欢线段树,他给你一个长度为 $n$ 的序列,对序列进行 $m$ 次操作。 操作有两种: 1 $1\ l\ r\ k$ :表示将下标在 $[l , r]$ 区间内的数字替换成 $[k,k+1,…,k+r-l]$ $2\ l\ r$ :表示查询区间 $[l ......
区间 200195 NC

6669: 括号配对 区间dp

描述 Hecy 又接了个新任务:BE 处理。BE 中有一类被称为 GBE。 以下是 GBE 的定义: 空表达式是 GBE 如果表达式 A 是 GBE,则 [A] 与 (A) 都是 GBE 如果 A 与 B 都是 GBE,那么 AB 是 GBE。 输入 输入仅一行,为字符串 BE。 对于 100% 的 ......
括号 区间 6669

权值线段树模板

【模板】普通平衡树 // AC one more times #include <bits/stdc++.h> using namespace std; #define fi first #define se second #define pb push_back #define endl '\n' ......
线段 模板

线段树

1.基础算法 1.1快读快写 template <typename T> inline void read(T& t) {​ int f = 0, c = getchar(); t = 0; ​ while (!isdigit(c)) f |= c == '-', c = getchar();​ w ......
线段

线段树的动态开点模板

学习自 数据结构学习笔记(5)动态开点线段树 动态开点线段树 感谢大佬们博客的帮助 // AC one more times #include <bits/stdc++.h> using namespace std; #define fi first #define se second #defin ......
线段 模板 动态

区间DP小结(附经典例题) 转载

区间DP 转载自:原博客 一、定义 ​ 区间DP是线性动态规划的扩展,适用场景为每段区间的最优解可以通过更小区间的最优解得到。所以我们一般的解题思路都是先在小区间得到最优解,然后总结出递推公式,利用小区间的最优解求大区间的最优解。 二、实现伪代码 //mst(dp,0) 初始化dp数组 for(in ......
例题 区间 小结 经典

CF960F Pathwalks | 线段树优化DP

题目 设$dp[x,w]$为以结点$x$为结尾,且最后一条边边权为$w$的最长路径长度。 考虑根据顺序加边,对于边$(u,v)$,更新 $$ dp[v,w] = \max_{w' < w}{dp[u,w']} + 1 $$ 对于每个节点,建一棵线段树,维护$dp[x]$,这样每次更新$dp[v,w] ......
线段 Pathwalks 960F 960 CF

线段树

1 #include<iostream> 2 #include<string> 3 #define ll long long 4 const int N = 1e5 + 5; 5 6 using namespace std; 7 8 ll tree[N<<2]; // 线段树,可以是对应的结构体 9 ......
线段