线段459579152 zhuanlan atcoder

Daimayuan Online Judge 线段树打标记1

给 $n$ 个数 $a_1, a_2, \cdots, a_n$ 。 支持 $q$ 个操作: 1. 1 l r d ,令所有的 $a_i(l \leq i \leq r)$ 加上 $d$ 。 2. 2 l r ,查询 $max_{i = l}^{r} a_i$ 。 区间修改的线段树要比基础线段树多考 ......
线段 打标 Daimayuan Online Judge

Daimayuan Online Judge 线段树打标记2

给 $n$ 个数 $a_1, a_2, \cdots, a_n$ 。 支持 $q$ 个操作: 1. 1 l r d ,令所有的 $a_i(l \leq i \leq r)$ 加上 $d$ 。 2. 2 l r d ,令所有的 $a_i(l \leq i \leq r)$ 乘上 $d$ 。 3. 3 ......
线段 打标 Daimayuan Online Judge

P3373 【模板】线段树 2

## [【模板】线段树 2](https://www.luogu.com.cn/problem/P3373) 如题,已知一个数列,你需要进行下面三种操作: - 将某区间每一个数乘上 $x$; - 将某区间每一个数加上 $x$; - 求出某区间每一个数的和。 #### 输入格式 第一行包含三个整数 $ ......
线段 模板 P3373 3373

Atcoder Beginner Contest 317 解题报告

# Atcoder Beginner Contest 317 ABC316 咋没了。 暂时 A~E。 ## Hints D $\quad$可以算出每次选举需要的改票数。然后变成了一个经典问题。 E $\quad$有点 naive。不用担心暴力扫 T 掉,时间复杂度是真的。 F $\quad$F1 $ ......
Beginner Atcoder Contest 报告 317

线段树

## 下饭写错合集: - `if(l>R||r=R||r>1) #define ls(x) (x #define ll long long #define mid ((l+r)>>1) #define ls(x) (xR||r=L&&r #define mid ((l+r)>>1) #define ......
线段

AtCoder Beginner Contest 317 F - Nim

## 数位 DP ```cpp #include using namespace std; using ll = long long; int dp[64][10][10][10][2][2][2][2][2][2]; int main() { ll n; int b1, b2, b3; cin > ......
Beginner AtCoder Contest 317 Nim

线段树优化建图

以前一直以为是什么高深的东西,然后学会了才发现没那么难。 ## 超级源点 假设我现在有: ```mermaid graph TD 1 2 3 ``` ```mermaid graph TD 4 5 6 ``` 需要给1连上4,5,6;2连上4,5,6;3连上4,5,6。它们的边权为1。 那你会说,这 ......
线段

AtCoder Beginner Contest 317 G Rearranging

[洛谷传送门](https://www.luogu.com.cn/problem/AT_abc317_g "洛谷传送门") [AtCoder 传送门](https://atcoder.jp/contests/abc317/tasks/abc317_g "AtCoder 传送门") 考虑转化成匹配问题 ......
Rearranging Beginner AtCoder Contest 317

Atcoder Beginner Contest 317(F~G)

**两发罚时:** 1. D long long。 2. E bfs 不在把元素扔进队列前标记。 ## F. [Nim](https://atcoder.jp/contests/abc317/tasks/abc317_f) 考虑 $a_i$ 很小,$n$ 很大,于是不妨数位 dp。 设 $dp_{i ......
Beginner Atcoder Contest 317

AtCoder Beginner Contest 215

[ABC215F] Dist Max 2 二分出 min( | xi - xj | , | yi - yj | ),双指针维护是否存在满足条件的点对(i, j),假如二分当前值是x,那么 |xi - xj| >= x &&|yi - yj| >= x #include<bits/stdc++.h> ......
Beginner AtCoder Contest 215

吉司机线段树学习笔记

给出一个长度为n的数列A同时定义一个辅助数组 B,B开始与 A完全相同。接下来进行了m次操作,构造一个数据结构维护以下五类操作: 1. 对于所有i$\in$[l,r],将$A_i$加上k 2. 对于所有i$\in$[l,r],将$A_i$min($A_i$,v) 3. 求$\sum\limits_{ ......
线段 司机 笔记

P5787 二分图 /【模板】线段树分治

[传送门](https://www.luogu.com.cn/problem/P5787) 分析: $1$、**并查集判断二分图:** 定义$2n$个点,染成黑白两色,代表两个不同的集合,$a_1$与$a_{1+n}$为不同的颜色,以此类推,对于$a_i$和$a_j$的连边,判断$a_i$和$a_j ......
线段 模板 P5787 5787

树上可持久化线段树

[例题传送门:Count on a tree](https://www.luogu.com.cn/problem/P2633) 简要题意:有棵$n$个节点的树,每次点有个权值$a_i$,每次询问给出$u,v,k$,求$u,v$两个节点的简单路径上(包括$u,v$)上第$k$小的点,保证数据有解,强制 ......
线段

P2824 排序(二分答案加线段树)

[传送门](https://www.luogu.com.cn/problem/P2824) 很巧妙的一个题 直接排序肯定会$T$飞 我们发现问题只有一个:第$q$个位置上的数字 不难想到从这里入手,二分答案,考虑第$q$个位置上的数字是什么,不妨设他为$x$ 然后把大于等于$x$的数变成$1$,小于 ......
线段 答案 P2824 2824

线段树+动态开点权值线段树+主席树学习笔记

线段树一般用于维护符合结合律的信息。可以用于求区间最大值 区间和 区间最小值 最大子段和甚至于最大负数最小正数之类的信息。事实上线段树只有你想不到,很少有做不到的,算是相当常用的数据结构。 下面将结合个人理解和具体题目来讲一讲线段树。 [https://www.luogu.com.cn/proble ......
线段 主席 笔记 动态

【主席树】洛谷 P3834 可持久化线段树 2

# 【主席树】洛谷 P3834 可持久化线段树2 题目链接:https://www.luogu.com.cn/problem/P3834 主席树是可持久化线段树的一种,也叫做可持久化权值线段树,主要可以用来O(logn)求静态区间的第k小数。 总所周知,普通线段树每次修改会遍历logn个点,那么我们 ......
线段 主席 P3834 3834

可持久化线段树标记永久化?可刺激化修道士表舅已经黑!

关于可刺激化修道士表舅已经黑。 因为傻逼 lxd 告诉我我的表舅已经黑写法是错误的,所以稀里糊涂的让他改成了他的那种写法。但是我的也是对的。 比如区间加和区间查和,维护一个 $tag$,表示表舅的值。然后在区间加的时候,经过的区间的 $sum$ 的值可以直接加,但是只有在 ```cpp if (x ......
表舅 线段 标记

AtCoder Beginner Contest 314

# A - 3.14 ```cpp #include using namespace std; #define int long long int32_t main() { ios::sync_with_stdio(0), cin.tie(0); string s = "14159265358979 ......
Beginner AtCoder Contest 314

线段树

线段树 vs 树状数组 1. 代码长度: 树状数组段 2. 可扩展性:线段树强, 二树状数组仅局限于和的处理 3. 思维难度:线段树简单 比如 区查区改 树状数组还要打开多项式搞 延迟标记:为了处理当修改区间是$[1,n]$时所有节点都要被修改一遍的情况 如果修改区间覆盖当前区间,那么这颗子树之内所 ......
线段

线段树

# 线段树 ```c++ struct Node{ int l, r, sum, lazy; }tr[N * 4]; int a[N]; void pushup(int u) { tr[u].sum = tr[u > 1; pushdown(u); build(u = l && tr[u].r > ......
线段

AtCoder Beginner Contest 315

# A - tcdr ```cpp #include using namespace std; int32_t main() { string s; cin >> s; for( auto i : s){ if( i != 'a' and i != 'e' and i != 'i' and i != ......
Beginner AtCoder Contest 315

AtCoder Beginner Contest 287 - C (图论简单题)

[toc] # [C - Path Graph?](https://atcoder.jp/contests/abc287/tasks/abc287_c) **题意** 判断给定的无向简单图是不是一条链 **思路** n 个顶点 m 条边的无向图若为一条链,那么边数 $m = n - 1$,n 个顶点 ......
Beginner AtCoder Contest 287

数学——点到线段的最短距离

点到线段最短距离的运算与点到直线的最短距离的运算二者之间存在一定的差别,即求点到线段最短距离时需要考虑参考点在沿线段方向的投影点是否在线段上,若在线段上才可采用点到直线距离公式。 通俗的说,我们按照求点到直线的距离作垂线后,交点不一定在线段上。 如图 $1$ 所示。 ![image](https:/ ......
短距离 线段 点到 数学

AtCoder Beginner Contest 315

第一次打abc正赛 ## D. Magical Cookies [D - Magical Cookies (atcoder.jp)](https://atcoder.jp/contests/abc315/tasks/abc315_d) ### 题意 给定一个矩阵,矩阵每个点放着一种饼干,饼干种类用小 ......
Beginner AtCoder Contest 315

[Trick] [算法学习笔记] 线段树

事先声明:本文并非线段树教学。只是一些理解Trick。若您需从0学起线段树建议您移步其他博文呢qwq 感谢 Idea 提供 [尺子姐姐的博客!](https://www.cnblogs.com/ruierqwq/),尺子好闪,拜谢尺子! 我们在学习线段树的时候,对于乘法“lazy tag 先乘再加” ......
线段 算法 笔记 Trick

线段树进阶

## 多信息合并 $\text{GSS3 Solution}$ [$\text{link}$](https://www.luogu.com.cn/problem/SP1716) 对于线段树的每个结点,记录其区间和($sum$),区间前后缀最大子段和($lmax,rmax$)和区间最大子段和($vma ......
线段

【学习笔记】优化建图相关(线段树优化,倍增优化)

**优化建图** ~~发现并没有人写得很详细的样子,那我也摆烂好惹~~ 点击查看目录 [TOC] ## 前言 >众所周知,连边的时间复杂度一般是 $O(1)$,但,当连边的对象是一个连续的树上区间的时候,我们或许有更优的连边方式:优化建图。 前置知识: * 树链剖分 * 线段树 * 树上倍增 * D ......
线段 笔记

线段树笔记

线段树是用于在区间上进行信息统计的二叉树。 ## 线段树的性质 1. 每个节点都代表一个区间。 1. 有唯一的根节点,代表整体区间 1. 每个夜间点代表长度为 $1$ 的单位区间 1. 出叶节点和根节点之外的内部节点 $[l,r]$,取 $mid=\lfloor\frac{1+r}{2}\rfloo ......
线段 笔记

AtCoder Beginner Contest 315

# [AtCoder Beginner Contest 315](https://atcoder.jp/contests/abc315) ## [A - tcdr (atcoder.jp)](https://atcoder.jp/contests/abc315/tasks/abc315_a) **一 ......
Beginner AtCoder Contest 315

AtCoder Beginner Contest 315 - E (toposort)

[toc] # [E - Prerequisites](https://atcoder.jp/contests/abc315/tasks/abc315_e) **题意** n 本书,序号 1 ~ n。给定阅读每本书之前必须要看的书的序号。 请你输出任意一种看第一本书所需看书数量最少的方法 **思路* ......
Beginner toposort AtCoder Contest 315