线段树
Bug原产地
这个作者很懒,什么都没留下…
展开
-
GTY‘s gay friends ( 线段树 + 区间排列)
HDU5172#include<bits/stdc++.h>#define LL long longusing namespace std;const int maxn=1e6+5;inline int read() { int s = 0, f = 1; char ch = getchar(); while (ch < '0' || ch > '9') {if (ch == '-') f = -1; ch = getchar();} while (ch >原创 2020-12-02 17:44:00 · 250 阅读 · 0 评论 -
牛客小白月赛28 E( 线段树—区间最值下标)
题目链接解题报告:1.1.1.由数据范围可知需离散化2.2.2.直接上线段树维护最值即可。对于最值下标的查询 根据查询规则确定左右子树的访问顺序。代码展示:#include<bits/stdc++.h>#define LL long long#define pii pair<int,int>#define all(x) x.begin(),x.end()#define mem(a,b) memset(a,b,sizeof(a))using namespace原创 2020-09-24 17:41:05 · 226 阅读 · 0 评论 -
Can you answer these queries III ( 线段树--区间合并 )
链接:https://ac.nowcoder.com/acm/contest/1033/A来源:牛客网题目描述给定长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:“1 x y”,查询区间 [x,y] 中的最大连续子段和,即 max_{x \leq l \leq r \leq y}({\sum_{r_i=l}^{r}A[i]})maxx≤l≤r≤y (∑ri =lr A[i])。“2 x y”,把 A[x] 改成 y。对于每个查询指令,输出一个整数表示答案。原创 2020-09-21 16:46:35 · 79 阅读 · 0 评论 -
木桩 ( 线段树 思维“ 最左(右)大于某个数位置”)
题目链接解题报告:直接上线段树维护区间最大值,询问的时候优先向左儿子询问再向右儿子询问,最后别忘了更新线段树。#include<bits/stdc++.h>#define LL long long#define pii pair<LL,int>#define mem(a,b) memset(a,b,sizeof(a))using namespace std;const int maxn=1e6+5;const int inf=0x3f3f3f3f;int n,原创 2020-06-13 10:34:55 · 215 阅读 · 0 评论 -
牛客算法周周练8 C ( 线段树 + 裴蜀定理 )
题目链接解题报告:我们用一颗线段树维护差分数组,同时也维护 区间和 ,区间最大值,区间gcd 。对于操作1:只需让 {l}+x,{r+1}-=x。对于操作2:本身维护的就是差分数组,直接去max。对于操作3:gcd({l}区间和,{l+1,r} 区间gcd)。gcd(a,b)= gcd(a-b,b) =>> gcd(a,b,c,d)=gcd(a,b-a,c-b,d-c);#define first f#define second s#define ll long lo原创 2020-05-29 15:40:02 · 207 阅读 · 0 评论 -
树上求和( dfs序 + 线段树 )
题目链接解题报告:将树转化成dfs序,对于任意节点及其子树总是一段连续的区间,那么转化成区间问题。( ai + b ) ^2 = ai*ai + 2*ai*b + b*b 很明显线段树维护即可。#define first f#define second s#define ll long long#define mp make_pair#define pb push_back#...原创 2020-03-24 19:29:14 · 357 阅读 · 0 评论 -
P1198 [JSOI2008]最大数(区间最值 ST || 线段树 )
题目链接:题目描述:现在请求你维护一个数列,要求提供以下两种操作:1、 查询操作。语法:Q L功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值。限制:LL不超过当前数列的长度。(L > 0)2、 插入操作。语法:A n功能:将n加上t,其中tt是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取模,将所得答案插入到数列的...原创 2020-03-10 20:12:50 · 124 阅读 · 0 评论 -
牛客小白月赛 20 E区区区间(线段树)
传送门题目:Keven 特别喜欢线段树,他给你一个长度为 n 的序列,对序列进行 m 次操作。操作有两种:1 l r k :表示将下标在 [l , r][l,r] 区间内的数字替换成 [k,k+1,…,k+r-l][k,k+1,…,k+r−l]2 l r :表示查询区间 [l , r][l,r] 的区间和思路:题目已暗示线段树,对于每段区间更改可以 O(1) 求出区间和,考虑重复更新的...原创 2020-01-09 17:42:55 · 448 阅读 · 0 评论