区间56
线段树入门】P3870 开关(区间异或和)
1 // 2 //#pragma GCC optimize("Ofast") 3 //#pragma GCC optimize("unroll-loops") 4 #define _CRT_SECURE_NO_WARNINGS 5 #define All(a) a.begin(),a.end() 6 ......
【线段树入门】P3373 线段树 2(区间乘加)
//笔记-自用 //#pragma GCC optimize("Ofast") //#pragma GCC optimize("unroll-loops") #define _CRT_SECURE_NO_WARNINGS #define All(a) a.begin(),a.end() #defin ......
排序合并区间
题目 合并区间 以数组 intervals 表示若干个区间的集合,其中单个区间为 intervals[i] = [starti, endi] 。请你合并所有重叠的区间,并返回 一个不重叠的区间数组,该数组需恰好覆盖输入中的所有区间 。 示例 1: 输入:intervals = [[1,3],[2,6 ......
第 375 场周赛(滑动窗口,区间合并)
使用差分的思想进行解决 class Solution: def countTestedDevices(self, batteryPercentages: List[int]) -> int: diff = 0 for x in batteryPercentages: if x > diff: dif ......
线段树模板区间加(含懒标记)
const int N = 1e5 + 10; int n, m; int a[N]; struct Tree{ int l,r; ll sum,add; }tr[4*N]; void build(int u,int l,int r){ // l=tr[u].l;r=tr[u].r; //注释掉的部 ......
2023南海区区赛模拟(初中组)T3删除区间
第3题 删除区间 查看测评数据信息 开始给你N个元素的数组(下标从1开始),数组里的数是1,2,3,…,N,然后执行D次删除操作。每次删除操作给一个区间[lo, hi],要求删除下标位置从lo到hi的数,数组里的数据个数会减少hi-lo+1个。 例如,N=8,第1次删除操作区间是[3 4],结果为” ......
AcWing 802. 区间和
题面: 假定有一个无限长的数轴,数轴上每个坐标上的数都是 \(0\) 。 现在,我们首先进行 \(n\) 次操作,每次操作将某一位置 \(x\) 上的数加 \(c\) 。 接下来,进行 \(m\) 次询问,每个询问包含两个整数 \(l\) 和 \(r\) ,求出在区间 \([l,r]\) 之间的所有 ......
秦疆的Java课程笔记:56 数组 二维数组
多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一维数组,其每一个元素都是一个一维数组。 秦疆老师表示Java中并不太使用二维以上的多维数组。 例如二维数组:int a[][] = new int[2][5],就可以看成是一个两行五列的数组 public class ArrayDemo1 { ......
P8111 [Cnoi2021] 区间
[Cnoi2021] 区间 题目背景 Cirno 有一个区间 \([a,b](1\le a \le b \le n)\),而你的任务是在规定的次数内帮 Rumia 猜出这个区间。 每次,你可向Cirno询问一个数字 \(k\),而 Cirno 会告诉你这个数字与区间 \([a,b]\) 的关系。 题 ......
Luogu P6292 区间本质不同子串个数
给定字符串 \(S\),\(m\) 次询问 \(S_{l_i}S_{l_i + 1} \cdots S_{r_i}\) 中本质不同的字符串个数。 \(|S| \le 10 ^ 5, m \le 2 \times 10 ^ 5\)。 考虑将询问离线,右端点扫描线,维护 \(f_l\) 为 \(S_l ......
区间合并算法总结
区间合并使用贪心算法,对于区间问题,通常需要对左端点排序、右端点排序或者左端点和右端点双关键字排序。区间合并算法的算法步骤: 1. 按照区间左端点排序。 2. 扫描过程中,每次维护一个当前的区间。 题目链接: https://www.acwing.com/problem/content/805/ 代 ......
apache时间区间工具类DurationFormatUtils
<dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.10</version> </dependency> 计算两个日期相差天数/月数/年数 Date ......
E. Permutation Sorting 树状数组实现离线区间数点
题目链接🔗 题意解读:给定一串数组a,每次操作将所有的 a[i] != i 的数循环右移一位,直到所有的数都在自己的位置上。求对于1到n之间的每个i,需要移动多少次。 首先,先考虑移动次数的问题: 为了简化循环问题,考虑将数组长度手动扩充至 2 * n,对于所有的位置 i 上的一个 a[i] ,分 ......
带修区间mex
1 x y 把x改成y.2 x y 询问区间[x,y]的mex. part0 polylog做法 考虑整体二分,那就转换成了. 保留权值[vl,vr)的数,带修区间数颜色数(是否全部出现过 <=> 颜色数=vr-vl). 这个问题可以直接cdq. 复杂度O(n log^3 n). part1 考虑分 ......
算法学习笔记(43): 可持久化线段树 - 区间加!
可持久化线段树 也叫做主席树,单点修改时简单,使用空间 \(O(\log n)\),问题在于如何区间加。 区间覆盖可以做,但是似乎只能单点查? 所以我们需要引入标记永久化的概念。 一个标记在没有下放前会放在 \(O(\log n)\) 个点上,这覆盖了整个操作区间。 一般来说我们会 update 更 ......
区间DP
区间DP 区间DP 题目描述 设有\(N\)堆石子排成一排,其编号为\(1,2,3,…,N\)。 每堆石子有一定的质量,可以用一个整数来描述,现在要将这\(N\)堆石子合并成为一堆。 每次只能合并相邻的两堆,合并的代价为这两堆石子的质量之和,合并后与这两堆石子相邻的石子将和新堆相邻,合并时由于选择的 ......
区间合并
一、题目来源 AcWing算法基础课-803.区间合并 二、题目描述 给定 \(n\) 个区间 \([l_i,r_i]\),要求合并所有有交集的区间。 注意如果在端点处相交,也算有交集。 输出合并完成后的区间个数。 例如:\([1,3]\) 和 \([2,6]\) 可以合并为一个区间 \([1,6] ......
2维区间树状数组
```cpp void add(ll x, ll y, ll z){ for(int X = x; X <= n; X += X & -X) for(int Y = y; Y <= m; Y += Y & -Y){ t1[X][Y] += z; t2[X][Y] += z * x; t3[X][Y] ......
区间dp
1.acwing 282石子合并问题 1 #include<bits/stdc++.h> 2 using namespace std; 3 4 int n; 5 const int N = 310; 6 int s[N]; 7 int f[N][N]; 8 9 int main () 10 { 11 ......
【区间 dp】UVA1331 最大面积最小的三角剖分 Minimax Triangulation 题解
UVA1331 区间 dp。 有一个很经典的问题:给定一个凸多边形,求它的最优三角剖分,对每个三角形规定一个权函数 \(f(i,j,k)\),求所有剖分方案中最大的权值。 发现这个东西不好直接入手。但是这个东西与矩阵最优链乘是相似的。考虑区间 dp。因为随意的转移是难以维护的,维护区间信息就等于强制 ......
关于区间连续段问题 (析合树)
有部分题目需要处理关于区间连续段的问题(一般来说,对于一个排列,如果一个区间的值连读,就为一个连续段。)区间连续段看似不太好维护,其实有一种处理它的利器:析合树。(也可能只是析合树的思想),就能方便的维护这一个东西。 析合树 其实这个名字不重要 ......
用矩阵乘法推导区间覆盖区间历史和
区间加区间历史和,在网上的博客已经烂大街了。但还没有区间覆盖区间历史和。 众所周知,我们一般把线段树上维护的分类为信息与懒标记。用矩阵乘法的角度来看就是 I 和 T 两个矩阵。 线段树上,我们要处理信息与信息合并,信息与懒标记合并,懒标记与懒标记合并。 信息与信息合并就是矩阵相加。其他两个是乘。 于 ......
区间树上查找所有与给定区间相交的区间-算法复杂度正确性证明
区间树是在平衡树上维护的数据结构,按照左端点大小排序。详见《算法导论》。 算法设计思路 红黑树的拓展 在红黑树上维护结点属性\(min, max\): \(min\)表示该结点及其所有后代结点中的区间低端的最小值。 \(max\)表示该结点及其所有后代结点中的区间高端的最大值。 在插入时,对结点路上 ......
蓝桥杯管道 -- 二分, 区间覆盖
蓝桥杯管道 -- 二分, 区间覆盖 原题链接 参照执梗大佬的代码, 我太菜了wuwuwu...... import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.S ......
代码随想训练营第三十六天(Python)| 435. 无重叠区间、763.划分字母区间、56. 合并区间
435. 无重叠区间 class Solution: def eraseOverlapIntervals(self, intervals: List[List[int]]) -> int: intervals.sort(key=lambda x: x[0]) count = 0 for i in r ......
虚拟机ping不通物理机 PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data.
准备做samba服务配置的时候 ping 192.168.10.1 (物理机地址) PING 192.168.10.1 (192.168.10.1) 56(84) bytes of data. 查看自己的虚拟网络编辑器 是不是进主机网卡的网段没有设置好 2.查看自己的虚拟机网卡有没有连接 确保是已连 ......
P8317 [FOI2021] 幸运区间
P8317 [FOI2021] 幸运区间 题目传送门 分治 + dfs 首先可以发现 \(k\) 和 \(d\) 很小,所以是可以搜索的。 那么就考虑如何枚举区间,显然 \(n^2\) 枚举是会超时的,所以就考虑分治来求。 求的过程中就分成三种情况来处理:在左边一半,在右边一半,以及跨越中间点。显而 ......
Excel区间频率统计
有时候会使用Excel统计一下分段区间数据的频率,也就是数据在不同的区间的分布情况。下面案例就是使用Excel统计一下数据的区间分布情况。 使用frequency函数可以得到想要的结果。 公式=frequency(数据列,分界区间),然后CTRL + SHIFT + ENTER 注意点:要全部选中要 ......