线段occurrences unique

3348: 线段相交Ⅲ

描述 线段相交有两种情形:一种是“规范相交”,另一种是“非规范相交”。规范相交是指两条线段恰有唯一一个不是端点的公共点。即如果一条线段的端点在另一条线段上则不视为相交。如果两条线段有部分重合,也不视为相交。而非规范相交则把以上两种情况都视为相交。如下图所示: 规范相交认为a,b两种情况都是不相交的, ......
线段 3348

线段相交Ⅲ

**3348: 线段相交Ⅲ** 时间限制(普通/Java):1000MS/3000MS 内存限制:64000KByte **描述** >线段相交有两种情形:一种是“规范相交”,另一种是“非规范相交”。规范相交是指两条线段恰有唯一一个不是端点的公共点。即如果一条线段的端点在另一条线段上则不视为相交。如 ......
线段

李超线段树

我视界里最不珂爱的 SGT 代码我是真的自己写不动 所以这个是照着校 O勾 填空题目写的符合自己习惯的代码 我们要动态维护平面里的直线和诸如 $x=t$ 这类直线的信息 大概原理不难理解 就是权值线段树对应区间维护的是当前区间的最优解 最优解指的是在这个区间里面最上面的线段 可以完全碾压别的线段那一 ......
线段

tzoj3348 线段相交Ⅲ

就是个解方程。 #include <bits/stdc++.h> #define IO ios::sync_with_stdio(0), cin.tie(0), cout.tie(0); using namespace std; double ansx, ansy; bool pingxing(do ......
线段 tzoj 3348

线段相交Ⅲ

描述 线段相交有两种情形:一种是“规范相交”,另一种是“非规范相交”。规范相交是指两条线段恰有唯一一个不是端点的公共点。即如果一条线段的端点在另一条线段上则不视为相交。如果两条线段有部分重合,也不视为相交。而非规范相交则把以上两种情况都视为相交。如下图所示: 规范相交认为a,b两种情况都是不相交的, ......
线段

「学习笔记」线段树优化建图

在建图连边的过程中,我们时常会碰到这种题目,一个点向一段连续的区间中的点连边或者一个连续的区间向一个点连边,如果我们真的一条一条连过去,那一旦点的数量多了复杂度就爆炸了,这里就需要用线段树的区间性质来优化我们的建图了。 那棵线段树大概长这个样子。 ![线段树](https://images.cnbl ......
线段 笔记

线段树

# 线段树 线段树是一种二叉树形数据结构,用于解决区间查询和区间修改问题。它将一个数组划分为若干个连续的区间,每个区间对应线段树的一个节点。通过递归地构建线段树,我们可以在O(log n)的时间复杂度内完成区间查询和区间修改操作。 ## 原理 线段树的构建过程如下: 1. 将原数组划分为n个子区间, ......
线段

【学习笔记】线段树分治

定义 线段树分治是一种解决一类有插入、删除和整体查询操作的问题的方法。它是一种离线做法,通过在线段树上记录操作的时间区间来处理修改对询问的影响。每个操作被看作一个时间区间的修改,并在线段树上进行标记。然后通过深度优先搜索(DFS)依次执行这些操作,直到根节点来回答查询,并在离开时将其撤销。 题目 # ......
线段 笔记

线段树的一些延伸

## 一.动态开点线段树 虽然思路简单,但对于一个习惯数组写法的人,这是一个比较难受的东西。 动态开点一般是用来解决空间上的问题的。 一般来说,普通的线段树是直接将一颗完整的线段建出来,但如碰到数据范围大或卡空间的时候,我们就只能在我们需要的时候再建,这个就叫做动态开点。(类似于 trie) ### ......
线段

ABC245E Wrapping Chocolate [线段树二分]

[也许更好的阅读体验](https://blog.csdn.net/Morning_Glory_JR/article/details/132194133?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22% ......
线段 Chocolate Wrapping 245E ABC

线段树补充

## 线段树补充 ### 线段树维护矩阵和 #### 矩阵快速幂 和普通快速幂同理 ```cpp int M; struct matrix { ll x[M+1][M+1]; matrix() { memset(x,0,sizeof(x)); } }; matrix multiply(matrix ......
线段

线段树合并学习笔记

## 基本思路 线段树合并其实就是简单的暴力合并就可以了。一般是运用于权值线段树。通常是在每个节点都需要要一颗线段树才能维护答案,且有多个节点时,会使用线段树合并。但每个节点所有的权值不能太多,如果都是比较满的二叉树的话,时间复杂度就会很高。 通常,加入值的数量跟节点数量在同一级别的话,时间复杂度是 ......
线段 笔记

李超线段树学习笔记

### 用途 李超线段树的用法非常固定,一般就是让你求对于给出的一些线段或直线中,对于某个x最大的y是那个。 通常可以用于斜率优化。 而其的时间复杂度是 $O(n\log n^2)$ ### 思路 注:下文默认是线段,因为直线也只用改一下就行了。 我们建立一颗线段树,每个节点保存在当前区间,当x=m ......
线段 笔记

c++中unique_ptr 的使用和理解

# unique_ptr 的使用 `std::unique_ptr`是c++11起引入的智能指针,为什么必须要在c++11起才有该特性,主要还是c++11增加了move语义,否则无法对对象的所有权进行传递。 ## unique_ptr 介绍 - unique_ptr 不共享它的指针。它无法复制到其他 ......
unique_ptr unique ptr

李超线段树

# Part 1:标记永久化 **一言以蔽之**:标记永久化就是不再下放标记,而是让标记永久地停留在线段树的节点上,统计答案时再考虑这些标记的影响 # Part 2:维护直线 我们以下面这道题为例子来进行讲解 ## [JSOI2008] Blue Mary开公司 ([题目传送门](https://w ......
线段

线段树合并

# Part 1:知识点 - ### 前置知识:动态开点线段树 - 线段树合并是一个递归的过程。我们合并两棵线段树时,用两个指针 $p,q$ 从两个根节点出发,以递归的方式**同步遍历**两棵线段树。 1.若 $p,q$ 之一为空,则以非空的那个作为合并的节点 2.若 $p,q$ 均不为空,则递归合 ......
线段

【模板】线段树

# 引入 ## 题目描述 给定$n$个数$a[1],a[2],a[3]...a[n]$,现在又下面两种操作: 1.询问区间$[x,y]$的和,并输出。 2.将下标为$x$的数增加$val$。 一共$x$此操作 $1\le n,m\le 100000$,保证在$int$范围内。 ### 方法一:暴力枚 ......
线段 模板

线段树

线段树 除了最后一层满二叉树,用堆(一维数组)来存树,一般来说,开4n的空间 ![线段树](D:\软件\Typora\Typora\笔记\示意图\线段树.png) #### build(int u, int l, int r) 将一段区间初始化为线段树 #### push up() 由子节点更新父节 ......
线段

Even(23Nowcoder6.J)(二分+可持久化线段树)

### 题意: > 给定一个序列$a$,定义一次操作选择序列中一个元素$a[i]$, 使$a_i = \lfloor \frac{a_i}{2} \rfloor$,其中$a_i$为当前序列中的最大偶数,若没有则是最大奇数。 > > 有$q$组询问,每次给定$k, l, r$分别表示操作次数和操作区间 ......
线段 Nowcoder6 Nowcoder Even 23

Unique Palindromes

<p><a href="https://www.cnblogs.com/LuoGuyexc/articles/17397324.html">更好的阅读体验</a>。</p><p>一道贪心题。</p><p>首先,本质不同的回文串最多只有 $n$ 个.</p><p>我们注意到 $k$ 很小,甚至小于字符 ......
Palindromes Unique

Co-occurrence Network:相关系数矩阵的阈值

"abs(occor.r) < 0.7" 这部分代码是对相关系数矩阵进行阈值处理的一部分。这里的 "0.7" 是一个阈值,用来筛选相关性较强的微生物对。具体来说,对于相关系数矩阵中的每个元素,如果其绝对值小于0.7,则将其设置为0。 相关系数范围在-1到1之间,绝对值越接近1表示相关性越强,绝对值越 ......

unique_ptr 与 shared_ptr 的 deleter

使用`std::unique_ptr`定义(声明)一个对象的时候,需要知道这个对象的`Deleter`,`std::unique_ptr`的原型如下: ```cpp template > class unique_ptr; ``` 如果在定义/声明一个unique_ptr对象的时候,这个对象是`im ......
unique_ptr shared_ptr ptr deleter unique

[LeetCode] 980. Unique Paths III

You are given an m x n integer array grid where grid[i][j] could be: 1 representing the starting square. There is exactly one starting square. 2 repre ......
LeetCode Unique Paths 980 III

[Ynoi2012] NOIP2015 充满了希望(扫描线+线段树)

### [题目传送门](https://www.luogu.com.cn/problem/P5524) ## solution 简单题。 我们正着做扫描线。 设 $t_i$ 表示位置 $i$ 最后一次进行二操作的时间,那么一操作就是交换 $t_x,t_y$ ,二操作就是区间复制。 对于三操作,开一个 ......
扫描线 线段 Ynoi 2012 NOIP

矩阵,分治,线段树。 (其一)

## 矩阵 我一向对矩阵是深恶痛绝的,难写是一点,更多是因为我总觉得发明矩阵的人觉得自己很酷。 (矩阵这玩意总是让我想不清楚本质 以至于我总想着以某些方法代替矩阵,以前喜欢用分治,那时认为矩阵的本质是分治,但是分治这玩意写出来奇丑无比,今天既然见到题解有类似的实现,便顺便梳理一下, 希望有更深的理解 ......
线段 矩阵

Limit线段树题单题解(更新中)

## [P3373 线段树模板 2](https://www.luogu.com.cn/problem/P3373) ![image-20230803010844370](https://zeoy-typora.oss-cn-hangzhou.aliyuncs.com/image-202308030 ......
线段 题解 Limit

c++11 std::unique_lock

# std::unique_lock * 用法类似lock_guard,离开作用域后自动unlock * 定义的时候可以不需要mutex初始化,可以为空 * 可以手动调用lock(),unlock() ```cpp // unique_lock example #include // std::co ......
unique_lock unique lock std 11

【复健】线段树

## 线段树复健 OJ 上的题还没做完,下午再说(你 ### 概念 一种**二叉搜索树**,通过二叉树形结构储存数据,能够解决大部分与**区间操作**有关的问题,当然应用范围不止于区间操作。 原理是用二分(?)维护一定的区间。 ### 主体部分实现 #### 建树 考虑递归建树,一直二分直到只剩一个 ......
线段

[HEOI2013] Segment李超线段树

RT 感觉会模板就差不多了,可用作处理一些线段或直线的问题,转化过来的也可以。比如DP的斜率优化,直线的话只用一个log,线段要两个log。 [[HEOI2013] Segment](https://www.luogu.com.cn/problem/P4097 "[HEOI2013] Segment ......
线段 Segment HEOI 2013

UNIQUE VISION Programming Contest 2023 Summer(AtCoder Beginner Contest 312)

# Preface 最唐氏的一集,尽情欣赏ABC E题战俘的丑态 这场打的时候就很抽象,各种傻逼错误频发,从B题一路WA到G题 还好发现E后面的题更简单后马上把FG写了,不然要爆炸了 # A - Chord 签到 ```cpp #include #include #include #include ......
Contest Programming Beginner AtCoder UNIQUE