线段

「解题报告」P8861 线段

有趣 ds 题。 首先有一个部分分 $l_i \le 10^5 \le r_i$。发现这相当于可以把区间分成左右两部分,那么我们可以考虑将左右分开考虑。 我们将每个区间拆开成两部分,这样插入的时候就直接插入即可,修改操作时,发现实际上就是将左端所有长度大于 $10^5 - l$ 的区间长度改为 $1 ......
线段 报告 P8861 8861

Codeforces Round 881 (Div. 3) F2. Omsk Metro (hard version) (线段树 )

[传送门](https://codeforces.com/contest/1843/problem/F2) 大致题意: ** 动态给定一颗树,树上每个结点的权值一定为1或者-1。最开始有1号点,权值为1。** ** 输入n表示有n个操作,当第一个符号为+ a b表示添加结点操作,编号依次递增。a表示 ......
线段 Codeforces version Round Metro

计算几何之两条线段的交点

## 1. 概述 可以通过线段的跨立实验[[1]](https://www.geeksforgeeks.org/check-if-two-given-line-segments-intersect/)判断两条线段是否相交,但是想要进一步求它们的交点还是比较麻烦。[[2]](https://www.c ......
线段 交点 几何

浅谈线段树

# 线段树 ## 引入 线段树是较为常用的数据结构,一般用于维护区间信息。 线段树可以在 $O(\log n)$ 的时间复杂度内实现单点修改,区间修改,区间查询等操作。 一般的在区间上进行操作的题目都可以考虑线段树。 ## 普通线段树 ### 基本思想 线段树,顾名思义,就是由线段组成的树。 我们结 ......
线段

使用MaskableGraphic画线段-生成Mesh方式

``` using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; public class ......
线段 MaskableGraphic 方式 Mesh

凌乱的yyy / 线段覆盖

## 题目背景 快 noip 了,yyy 很紧张! ## 题目描述 现在各大 oj 上有 $n$ 个比赛,每个比赛的开始、结束的时间点是知道的。 yyy 认为,参加越多的比赛,noip 就能考的越好(假的)。 所以,他想知道他最多能参加几个比赛。 由于 yyy 是蒟蒻,如果要参加一个比赛必须善始善终 ......
线段 yyy

Luogu3792 由乃与大母神原型和偶像崇拜 - 线段树 - set -

题目链接:https://www.luogu.com.cn/problem/P3792 题解: 一点小小的空间震撼(ML:125MB) ![image](https://img2023.cnblogs.com/blog/1102006/202306/1102006-20230616211525513 ......
线段 原型 偶像 Luogu 3792

线段树

引入 线段树是算法竞赛中常用的用来维护区间信息的数据结构。 树状数组可以在 $O(\log n)$ 的时间内实现单点修改、区间查询(求和、求最值、求异或等);而线段树还可以在 $O(\log n)$ 时间内实现区间修改操作,例如将 $[L, R]$ 区间范围内的值都加上一个常数,乘以一个常数,或者都 ......
线段

Canvas_绘制线段、圆形、文本、图像、视频、处理图像数据

# Canvas_绘制线段、圆形、文本、图像、视频、处理图像数据 # 绘制线段 ```javascript var canvas1 = document.querySelector("#canvas1"); var ctx = canvas1.getContext("2d"); // 设置开始路径 ......
图像 线段 圆形 文本 数据

线段树学习笔记

时隔多日,我终于又回来了! 这几天我学习几个高级数据结构,来和大家分享一下线段树。 线段树,名字好高级啊,是不是非常难学?我个人觉得吧,线段树只要明白原理,记熟模板,做题还是比较容易的。QwQ OK,我们切入正题。 # NO.1 what is 线段树 看图理解一下(图片还是比较形象的) ![](h ......
线段 笔记

一棵线段树,爆切三道题

# T1 线段树,每个节点 $[l,r]$ 维护 $c_l,c_r$ 和答案。 考虑如何上传。 如果 $c_{mid} \ne c_{mid + 1}$,答案 $=$ 左儿子答案 $+$ 右儿子答案。 否则,答案 $=$ 左儿子答案 $+$ 右儿子答案 $- \ 1$。因为两个连通块合并了。 # T ......
线段

计算点二维A到线段B的垂线距离

```cpp #include #include using namespace std; // 计算距离函数 double distance(double x1, double y1, double x2, double y2) { return sqrt(pow(x1 - x2, 2) + po ......
垂线 线段

可持久化权值线段树 学习笔记

# 权值线段树 普通的线段树,一个 $[l,r)$ 的结点维护的是 $[l, r)$ 所有数的和之类的信息。权值线段树,$[l, r)$ 的结点维护的是 **全局** 有几个数落在 $[l, r)$ 内之类的信息。 # 可持久化权值线段树 普通的权值线段树只能查询 **全局** 内有几个数在 $[l ......
线段 笔记

HZOI 大根堆 线段树合并

题目描述 给定一棵n个节点的有根树,编号依次为1到n,其中1号点为根节点。每个点有一个权值v_i。 你需要将这棵树转化成一个大根堆。确切地说,你需要选择尽可能多的节点,满足大根堆的性质:对于任意两个点i,j,如果i在树上是j的祖先,那么v_i>v_j。 请计算可选的最多的点数,注意这些点不必形成这棵 ......
线段 HZOI

线段树合并学习笔记

## 前言 我是一个什么什么傻卵啊啊啊啊啊啊啊啊,连线段树合并都学不明白qaq ## 正文 ### 权值线段树 #### 含义: > 是用来维护好多好多桶的线段树. 桶是一个用来计数的东西. #### 与普通线段树的区别 > 普通线段树是用来维护区间和、积、最值等一系列的东西. > 权值线段树是用来 ......
线段 笔记

蓝桥杯----线段树训练

在来看下multiset的使用: 我们知道multiset是默认从小到大排序,那么如果我们想从大到小排序应该如何办? greater<int>是用来指定从大到小排序的 《线段树 维护区间第k大》 好博客< 由于这个第k大的k比较小,而且只有单点修改,那么我们可以用线段树 树中的每一个节点都维护着一个 ......
蓝桥 线段

题解 P4556 [Vani有约会]雨天的尾巴 /【模板】线段树合并

[传送门](https://www.luogu.com.cn/problem/P4556) 如题目所言,这就是个线段树合并的板子题。 ## 题目大意 ### 题目描述 首先村落里的一共有 $n$ 座房屋,并形成一个树状结构。然后救济粮分 $m$ 次发放,每次选择两个房屋 $(x, y)$,然后对于 ......
线段 题解 雨天 尾巴 模板

Luogu P4556 [Vani有约会]雨天的尾巴 /【模板】线段树合并

# [Vani有约会]雨天的尾巴 /【模板】线段树合并 ## 题目背景 深绘里一直很讨厌雨天。 灼热的天气穿透了前半个夏天,后来一场大雨和随之而来的洪水,浇灭了一切。 虽然深绘里家乡的小村落对洪水有着顽固的抵抗力,但也倒了几座老房子,几棵老树被连根拔起,以及田地里的粮食被弄得一片狼藉。 无奈的深绘里 ......
线段 雨天 尾巴 模板 Luogu

Codeforces 1566G - Four Vertices(线段树分治)

交了整整 2 页,本来想用随机化卡过去的,后来发现我的实现跑得太慢就写正常做法了。 首先发现最优答案对应的四个点只可能有以下两种可能: - $a,b$ 间有边,$c,d$ 间有边,此时答案是 $a,b$ 边权值加 $c,d$ 边权值。 - $a$ 与 $b,c,d$ 三个点间都有边,此时答案是三条边 ......
线段 Codeforces Vertices 1566G 1566

动态开点线段树

```cpp template struct Node { int l, r; T sum; // 区间和 T addtag; // 加法懒标记 // 左右子节点 Node *left, *right; Node(int l_, int r_, T sum_) : l(l_), r(r_), sum ......
线段 动态

「学习笔记」线段树

## 介绍: 线段树是一棵二叉搜索树,思想与分治很想,把一段区间平分平分再平分,平分到不能平分为止,可以进行方便的区间修改和区间查询,当然,树状数组能做的单点修改、单点查询,线段树也可以更好地实现,总之,线段树是树状数组的升级版,此外,线段树能做的平衡树也能做,但平衡树码量太大,考场上一般写不出来~ ......
线段 笔记

线段树模板题

[TOC] . ## 洛谷3372 线段树区间加法/区间求和 ```C++ // by DTTTTTTT 2023/6/2 // Luogu 3372 #include #define ll long long #define lc (p> 1; build(lc, l, mid); build(r ......
线段 模板

Codeforces 1515I - Phoenix and Diamonds(值域倍增+线段树)

首先 $c$ 很大,因此复杂度跟 $c$ 有关的项肯定只能是 $\log c$ 之类的。 类比 IOI2021 dungeons 的套路,我们**对值域进行分层**,假设 $c\in[2^{\omega-1},2^{\omega})$,考虑令重量在 $\ge 2^{\omega-1}$ 的物品为“重 ......
值域 线段 Codeforces Diamonds Phoenix

CF101234A Hacker Cups and Balls【二分+线段树】

## Description 给一个长度为 n 的排列,对它做 m 次操作,每次对 [l, r] 区间内进行升序/降序排序。 问最后的序列处于最中心的数是多少(n为奇数)。 ## Solution 是一类没有写过的题,[参考题解](https://www.cnblogs.com/ShinaCloud ......
线段 101234A 101234 Hacker Balls

【数据结构】吉司机线段树

# 【数据结构】吉司机线段树(Segment Tree Beats) 吉司机线段树,是由杭州学军中学的吉如一在2016年国集论文当中提出的,解决了区间最值操作和区间历史最值问题。 ### 题目描述 给出一个长度为 $n$ 的数列 $A$,同时定义一个辅助数组 $B$,$B$ 开始与 $A$ 完全相同 ......
线段 数据结构 司机 结构 数据

李超线段树

线段树是一类维护点的操作的数据结构,当我们处理线段问题时,同样可以将其归约到线段覆盖的一系列点上。这就是李超线段树的核心思想。 区间 $\operatorname{max}$ 是李超线段树的一类经典应用,现在给定若干条直线 $y_i=k_ix+b_i$,问在 $x=x_i$ 的函数最大值。 朴素的做 ......
线段

线段树学习总结

## 线段树入门 ### 线段树的概念 > 线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN)。而未优化的空间复杂度为2N,实际应用时一般还要开4N的数组以 ......
线段

权值线段树

## 简介 权值线段树是一种建立在基本线段树之上的数据结构。因此它的基本原理仍是基于对区间的维护操作。但权值线段树维护的信息是: **一段区间内数出现的个数** 实际上,权值线段树跟树状数组相似,都可以看作是一个桶。因此,根据权值线段树的性质,我们可以知道其主要用途: **求一段区间内数出现的次数、 ......
线段

#6029. 「雅礼集训 2017 Day1」市场 (线段树)

[传送门](https://loj.ac/p/6029) ``` #include using ll = long long; const int N = 1e5 + 10; const int MOD = 1e9 + 7; const ll INF = 0x3f3f3f3f3f3f3f3f * 2 ......
线段 市场 6029 2017 Day1

可持久化线段树

## 区间第K大板子(动态开点) ``` int n, m; int root[N], idx; struct node{ int l, r; int cnt; }tr[N * 40]; void pushup(int u){ tr[u].cnt = tr[tr[u].l].cnt + tr[tr[ ......
线段