线段459579152 zhuanlan atcoder

线段树进阶

## 普通线段树 核心在于上传标记(pushup)和下传标记(pushdown)以及懒标记的设计。 [**P3373 【模板】线段树 2**](https://www.luogu.com.cn/problem/P3373) 维护一个加法标记和乘法标记。 下传标记时,将乘法标记更新加法标记。 标记下传 ......
线段

AtCoder Beginner Contest 216

Tasks - AtCoder Beginner Contest 216 [ABC216D] Pair of Ball 可以发现对于栈中每个元素是被他上面的元素所约束,用拓扑排序表示这种约束 [ABC216F] Max Sum Counting dp合集 [ABC216G] 01Sequence 差 ......
Beginner AtCoder Contest 216

AtCoder Grand Contest 064

# Preface AGC好难啊,从C题开始就一点不会了,感觉以前OI时候的AGC没那么变态的啊,也许是我变菜好多了吧 # **A - i i's** 考虑先放一个这样的序列: $$ n,n-1,n,n-1,n\cdots,n-1,n,n-2 $$ 这样就把$n,n-1$都用完了,同时还用了个$n- ......
AtCoder Contest Grand 064

Codeforces Round 406 (Div. 2) D. Legacy 线段树优化建图

[传送门](https://codeforces.com/problemset/problem/786/B) 题目大意: **给定n个点,m个操作,和起点s。其中n 和 q 大于等于1小于等于1e5, s大于等于1小于等于n** **其中m个操作有三种情况:** 1.输入1 u v val 表示从u ......
线段 Codeforces Legacy Round 406

Memory题解(线段树优化DP)

[传送门](https://www.luogu.com.cn/problem/P9594) 简要题意: 给定 $m$ 条线段,每条线段由四个正整数参数 $l_i,r_i,c_i,w_i$ 描述,其中 $l_i,r_i$ 是这条线段的端点,$c_i$ 是这条线段的种类,$w_i$ 是这条线段的权值。 ......
线段 题解 Memory

高级算法指北——李超线段树及其应用

## I 走进李超线段树 ### 定义 李超线段树是一种用于维护多条一次函数的线段树。你可以使用它在 $O(\log n)$ 的复杂度内插入一条新的直线,或是查询所有直线 $y=k_ix+b_i$ 中,当 $x=x_0$ 时,$y$ 的最值。 李超线段树上的每个节点都维护当前区间的中点处,$y$ 的 ......
线段 算法

普通线段树

## [P3373 【模板】线段树 2](https://www.luogu.com.cn/problem/P3373) 题目要求支持区间加,区间乘,所以就打两个 $lazy\_tag$ ,然后 $push\_down$ 的时候先乘后加即可。 然后注意乘法的 $lazy\_tag$ 初始值为 $1$ ......
线段

吉司机线段树

## 一、区间历史最值 以区间历史最大值为例。首先,相应地,设 $maxb$ 表示一个节点的区间历史最大值。为了更新一个区间的子区间,再设一个 $tag2$ ,表示 $tag1$ 从上次 $push\_down$ 以后到现在达到过的最大值。 $code:$ ```cpp void push_up(i ......
线段 司机

李超线段树学习笔记

# 李超线段树学习笔记 ## [P4097 【模板】李超线段树 / [HEOI2013] Segment](https://www.luogu.com.cn/problem/P4097) ### 题意 要求在平面直角坐标系下维护两个操作: 1. 在平面上加入一条线段。记第 $i$ 条被插入的线段的标 ......
线段 笔记

线段树专题

# 线段树专题 注意:此文乃个人对线段树的见解,各位大佬如发现错误请批评指正 > 什么是线段树 线段树顾名思义,就是将一个数列的各个区间当成是树上的节点并维护。 > 线段树用来干什么 一般用来进行区间查改(矩阵查改本蒟蒻不会) > 线段树节点如何编号 假设当前节点的编号为 $k$,左儿子的编号为 $ ......
线段 专题

79 贪心 P1803 线段覆盖

视频链接: Luogu P1803 凌乱的yyy / 线段覆盖 #include <iostream> #include <cstring> #include <algorithm> using namespace std; struct line{ int l,r; //线段的左,右端点 bool ......
线段 P1803 1803 79

【题解】AtCoder Regular Contest 163 A-D

E 太过于 adhoc,F 太过于神仙,就不做了。 ## A.Divide String ### 题目描述: 多组数据。 给出一个长为 $N$ 的字符串,问能否将其划分为多段,使字典序**严格**上升,保证 **$\sum{N}\le2000$**。 $ 2\ \le\ N\ \le\ 2000 $ ......
题解 AtCoder Regular Contest 163

【题解】AtCoder Beginner Contest 318(D - Ex)

赛时过了 A-G,Ex 仿佛猜到了结论但是完全不懂多项式科技,就炸了。 大家好像都秒了 A,B,C 就不写了。 ## D.General Weighted Max Matching ### 题目描述: 给你一个加权无向完全图,图中有 $N$ 个顶点,编号从 $1$ 到 $N$。连接顶点 $i$ 和 ......
题解 Beginner AtCoder Contest 318

AtCoder Beginner Contest 318

> 咕咕咕,总力战还没打,凹不过卷狗,躺了.jpg ## [A - Full Moon (abc318 A)](https://atcoder.jp/contests/abc318/tasks/abc318_a) ### 题目大意 给定$n, m, p$,问有多少个 $i$满足 $0 神奇的代码 ` ......
Beginner AtCoder Contest 318

AtCoder Beginner Contest 318

## A - Full Moon ### Problem Statement Takahashi likes full moons. Let today be day $1$. The first day on or after today on which he can see a full mo ......
Beginner AtCoder Contest 318

线段树

# 建树: ```cpp int a[100005],d[100005]; void build(int s,int e,int p){// 建树 // 对区间[s,t]建立线段树,当前根编号为p if(s==e){ d[p]=a[s]; return ; } int m=s+((e-s)>>1); ......
线段

AtCoder Beginner Contest 201 E - Xor Distances

# E - Xor Distances [原题链接](https://atcoder.jp/contests/abc201/tasks/abc201_e) 题意:设dist(i,j)即i到j之间路径的异或和,求树上所有两点之间dist(i,j)的和 思路:dist(i,j) = dist(i,1)^ ......
Distances Beginner AtCoder Contest 201

AtCoder Beginner Contest 201 D - Game in Momotetsu World

# D - Game in Momotetsu World [原题链接](https://atcoder.jp/contests/abc201/tasks/abc201_d) 题意 有一个 H×W 的方格,每个方格里写着 '+' 或 '-' 有一个初始在 (1,1),(也就是左上角)的棋子, Tak ......
Momotetsu Beginner AtCoder Contest World

AtCoder Beginner Contest 317 D - President

# D - President [原题链接](https://atcoder.jp/contests/abc317/tasks/abc317_d) 题意:一共n轮,每一轮Xi > Yi (票数)时,X可以获得Zi 张席位,反之亦然;最终席位总和多的就获胜;因此要使X获胜,求Y至少要给X多少个票 思路 ......
President Beginner AtCoder Contest 317

AtCoder Beginner Contest 317 C - Remembering the Days

# C - Remembering the Days [原题链接](https://atcoder.jp/contests/abc317/tasks/abc317_c) 题意:每个点最多经过一次,求最长路 思路:数据范围很小,深搜每个点能到其他点的所有路,取最大 ```c++ #include us ......
Remembering Beginner AtCoder Contest Days

AtCoder Beginner Contest 317

# A - Potions ```cpp #include using namespace std; #define int long long int power(int x, int y, int p) { x %= p; int ans = 1; while (y) { if (y & 1) ......
Beginner AtCoder Contest 317

AtCoder Beginner Contest 296 C - Gap Existence

# C - Gap Existence [原题链接](https://atcoder.jp/contests/abc296/tasks/abc296_c) 题意:是否存在Ai - Aj = x 思路:排序,双指针 ```c++ #include using namespace std; const ......
Existence Beginner AtCoder Contest 296

AtCoder Beginner Contest 292 E - Transitivity

# E - Transitivity [原题链接](https://atcoder.jp/contests/abc292/tasks/abc292_e) 题意:对于一个有向图,进行加边操作,使最终任意的个点具有传递效果,即若a到b有边,b到c有边,那么a到c也要有边,问最少需要进行多少次操作,使得每 ......
Transitivity Beginner AtCoder Contest 292

AtCoder Beginner Contest 292 D - Unicyclic Components

# D - Unicyclic Components [原题链接](https://atcoder.jp/contests/abc292/tasks/abc292_d) 题意:判断一个连通块的边和点个数是否相同 思路:对它使用并查集吧 点击查看代码 ``` #include using namesp ......

3198: 区间和 线段树

描述 给定n个数据,有两个操作,加减其中的一个数据,当然还可查询在某段数据的和。 输入 输入数据有多组,每组数据的第一行输入n,1=<n<=500000,代表数据的个数。第二行输入具体数据,数据为正整数,范围在1到10000.第三行输入m,1<=m<=100000,表示操作的次数。包含了修改和查询操 ......
线段 区间 3198

线段树

# [P3372【模板】线段树 1](https://www.luogu.com.cn/problem/P3372) 参考代码 ```cpp #include #define LC (cur*2) #define RC (cur*2+1) typedef long long LL; const in ......
线段

T125847 【模板】动态开点线段树

## [$T125847$ 【模板】动态开点线段树](https://www.luogu.com.cn/problem/T125847) ### 题目背景 **注意:请注意时间限制是800ms 请使用较快的输入输出** **注意:空间限制是128MB 请不要开long long** **时限在std ......
线段 模板 T125847 动态 125847

AtCoder Regular Contest 164

# Preface 补一下好久之前的ARC,ABC的话如果没事会考虑从后往前补一下 # **A - Ternary Decomposition** 首先判掉当$k>n$时一定无解,否则可以贪心地对$n$进行三进制分解,得到最少可以拆成$k'$个数 不难发现我们总可以把其中较大的数拆成三个小的,以此来 ......
AtCoder Regular Contest 164

Daimayuan Online Judge 线段树1

给 $n$ 个数 $a_1, a_2, \cdots, a_n$ 。 支持 $q$ 个操作: 1. 1 x d ,修改 $a_x = d$ 。 2. 2 l r ,查询 $min_{i = l}^{r} a_i$ ,并输出 $\sum_{i = l}^{r} [a_i = min_{i = l}^{ ......
线段 Daimayuan Online Judge

Daimayuan Online Judge 线段树2

给 $n$ 个数 $a_1, a_2, \cdots, a_n$ 。 支持 $q$ 个操作: 1. 1 x d ,修改 $a_x = d$ 。 2. 2 l r ,查询 $[l, r]$ 中的最大子段和。 一:确定需要维护的信息。根据分治中线讨论,哪些信息可以合并出所需信息。递归讨论新信息如何合并。 ......
线段 Daimayuan Online Judge