E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
-----线段树
LOJ #135. 二维树状数组 3:区间修改,区间查询 题解
很显然,如果你用二维
线段树
的话,常数较大,加上要开longlong\text{longlong}longlong,很可能会MLE+TLE\text{MLE+TLE}MLE+TLE的双倍快乐。
bifanwen
·
2020-08-10 15:10
树状数组
题解 洛谷 P3332
题目描述权值
线段树
套
线段树
板子题首先观察题目,判断为二维偏序问题操作1为区间修改,所以一定是外部
线段树
维护权值,内部
线段树
维护所在区间,否则时间复杂度爆炸qwq为方便查找,哈希时我采用哈希每个数的相反数的方法将求第
bantan3076
·
2020-08-10 15:54
数据结构与算法
SPOJ DQUERY - D-query(主席树-区间不同数的个数)
思路:主席树入门题:简单记录一下:这里先建立一个完整的
线段树
,这里的区间就代表区间了,不再是第几大了,定义的sum是这个区间上的不同数的个数有几个。
aozil_yang
·
2020-08-10 15:41
主席树
SPOJ
【模板】
线段树
区间加、区间乘、区间和、区间平方和
1#include2#defineLLlonglong3#defineL(x)x'9')f=(ch=='-')?-1:1,ch=getchar();13while(ch>='0'&&ch>1;26if(tree[p].mul!=1){27tree[L(p)].mul=(tree[L(p)].mul*tree[p].mul)%mod;28tree[R(p)].mul=(tree[R(p)].mul*
aojiaoxidiquan7205
·
2020-08-10 15:09
线段树
模板
#include#include#includeusingnamespacestd;typedeflonglongLL;constintmaxn=1e5+7;inta[maxn],tree[maxn*4];intlz[maxn*4];voidbuild(intnode,intstart,intendd){if(start==endd)//叶子节点{tree[node]=a[start];retur
aitutu1971
·
2020-08-10 15:15
线段树
【训练】
A.敌兵布阵TimeLimit:2000/1000MS(Java/Others)MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):149073AcceptedSubmission(s):61803ProblemDescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海
aitutu1971
·
2020-08-10 15:14
java
洛谷P4243/bzoj1558 [JSOI2009]等差数列(
线段树
维护差分+爆炸恶心的合并)
题面首先感谢这篇题解,是思路来源看到等差数列,就会想到差分,又有区间加,很容易想到
线段树
维护差分。
abbgqna17764
·
2020-08-10 15:57
k短路模板(洛谷P2483 [SDOI2010]魔法猪学院)(k短路,最短路,左偏树,priority_queue)...
构建方法类似可持久化
线段树
)。#include#defineRGregister#defineRRGintusingnamespacestd;constintN=5009,M=4e5+9;intp
a83229442
·
2020-08-10 15:46
[SGT]
线段树
维护区间最大子段和
蓝书P208https://vjudge.net/problem/SPOJ-GSS1若将一区间分为两部分,则必有最大子段存在于左区间/右区间/跨越中间因此当前节点记录该段的最大前缀和,最大后缀和,段和,区间内最大子段和now.sum=ls.sum+rs.sum;now.lmax=max(ls.lmax,ls.sum+rs.lmax);now.rmax=max(rs.rmax,rs.sum+ls.r
Zeolim
·
2020-08-10 15:48
树(Tree)
模板
Balanced Lineup(
线段树
之区间查找最大最小值)
传送门
线段树
的区间查找最大最小值模板.裸的
线段树
#include#include#include#include#include#include#include#include#include#definelsu
ZSGG_ACM
·
2020-08-10 15:12
线段树(数据结构)
【知识点】 ---
线段树
的常用操作
1.什么是
线段树
?
线段树
是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应
线段树
中的一个叶结点。
Albert__s
·
2020-08-10 15:05
数据结构
线段树
线段树
维护区间最大子段和
一段区间的最大子段和出现在以下三种情况:左区间/右区间/跨越中间voidpush(node&now,node<,node&rt){now.sum=lt.sum+rt.sum;now.lgss=max(lt.lgss,lt.sum+rt.lgss);now.rgss=max(rt.rgss,rt.sum+lt.rgss);now.gss=max(lt.gss,max(rt.gss,lt.rgss
Whyckck
·
2020-08-10 14:42
线段树
ST表
虽然还可以使用
线段树
、树状链表等求解区间最值,但是ST算法要比它们更快,而且适用于在线查询。(1)离线预处理:运用DP思想,用于求解区间最值,并保存到一个二维数
WhiStLenA
·
2020-08-10 14:41
算法
ST表
线段树
用序列之王splay解决
线段树
经典问题
我们尝试用序列之王spaly来解决
线段树
经典两个问题:最大值和最大值2。
WerKeyTom_FTD
·
2020-08-10 14:40
杂文
splay
文章标题 HDU 1754 : I Hate It (分块 、
线段树
)
IHateIt分块解法:代码:#include#include#include#include#include#include#include#include#include#includeusingnamespacestd;typedeflonglongll;constintmod=1e9+7;constintmaxn=2e5+10;intblock;//块的大小intbelong[maxn];
Wang_SF2015
·
2020-08-10 14:36
莫队-分块
模板
线段树
浅谈
线段树
命题描述给定数列a[1],a[2]…a[n],你需要依次进行q个操作,操作有两类:1ix:给定i,将a[i]加上x;2lr:给定lr,求a[l]+a[l+1]+a[l+2]+…+a[r-1]+a[r]的值输入格式第一行包含2个正整数n,q,n表示数列长度,q表示询问个数。第二行n个整数,表示初始数列.接下来q行,每行一个操作,为以下两种之一:1ix:给定i,x,将a[i]加上x;2lr:给定l,r
AK Monster
·
2020-08-10 14:40
树
数据结构
算法
c++
QBXT 提高组储备营 2020.夏 游记
复习内容:堆,并查集新知识:倍增-ST表,
线段树
题解:老师今天开了道黑题??
AK Monster
·
2020-08-10 14:08
游记
c++
算法
线段树
区间修改+区间查询
大致思路:
线段树
的区间修改要比点修改难想一点。主要是多了一个延迟标记,目的是为了降低复杂度。但在询问的时候还需要把延迟标记逐个下放,还要更新原来的点,这就导致很难想了。
SCaryon
·
2020-08-10 14:43
异或
线段树
模板
https://ac.nowcoder.com/acm/contest/275/Chttp://codeforces.com/problemset/problem/242/E每个二进制位独占一棵
线段树
,
咆哮_
·
2020-08-10 14:10
线段树
模板(双标记)
P3373【模板】
线段树
21.将某区间每一个数乘上x2.将某区间每一个数加上x3.求出某区间每一个数的和#includeusingnamespacestd;#defineMAX100005#definelllonglong
咆哮_
·
2020-08-10 14:38
BZOJ2212(
线段树
合并)
题意TP现在有一棵二叉树,所有非叶子节点都有两个孩子。在每个叶子节点上有一个权值(有n个叶子节点,满足这些权值为1..n的一个排列)。可以任意交换每个非叶子节点的左右孩子。要求进行一系列交换,使得最终所有叶子节点的权值按照遍历序写出来,逆序对个数最少。第一行n下面每行,一个数x如果x==0,表示这个节点非叶子节点,递归地向下读入其左孩子和右孩子的信息,如果x!=0,表示这个节点是叶子节点,权值为x
QiHang_QiHang
·
2020-08-10 14:21
线段树
数据机构
SHOI2017 相逢是问候(扩展欧拉定理+
线段树
)
题意https://loj.ac/problem/2142思路一个数如果要作为指数,那么它不能直接对模数取模,这是常识;诸如cccc..c^{c^{c^{c..}}}cccc..的函数递增飞快,不是高精度可以描述的,这也是常识。所以,此题要用到很多数论知识。欧拉函数定义φ(n)\varphi(n)φ(n)为[1,n][1,n][1,n]中与nnn互质的正整数个数(包括111)。通式φ(n)=n∏p
Paulliant
·
2020-08-10 14:43
题目
洛谷-U40581 树上统计(启发式合并/
线段树
合并)
题意https://www.luogu.org/problemnew/show/U40581思路这种带两个∑\sum∑的题,显然是要单独算贡献了。在树上常见的就几种情况,点的贡献、边的贡献、LCA\text{LCA}LCA的贡献。考虑链的情况,对于一条边而言,能让它产生贡献的权值区间满足其中即含有在边左边的点,又含有在边右边的点。把在边左边的点标为111,右边的点标为000,那么即包含000、又包
Paulliant
·
2020-08-10 14:11
题目
最大字典序排列
前言:又是一道裸的
线段树
题目但有些
线段树
的用法还是以前没使用过的主要的卡点在于点之间是会交换顺序的交换顺序后岂不要把整个
线段树
给更新了??
NOI_yzk
·
2020-08-10 14:50
题解
——线段树
线段树
经典操作模板(单点更新,替换;区间更新,替换;区间求和求最值)
对于
线段树
的讲解此篇不再赘述,下面列出
线段树
应用中最常用的几种操作的代码。(具体题目未贴出,仅供有一定基础者参考代码风格)另外,注意多组输入要写scanf("%d%d",&n,&m)!
NK_test
·
2020-08-10 14:19
数据结构和算法
Greedy Sequence(
线段树
动态维护区间最大值)
You'regivenapermutationaaoflengthnn(1\len\le10^51≤n≤105).Foreachi\in[1,n]i∈[1,n],constructasequences_isibythefollowingrules:s_i[1]=isi[1]=i;Thelengthofs_isiisnn,andforeachj\in[2,n]j∈[2,n],s_i[j]\les_i
Mr_Kingk
·
2020-08-10 14:38
树
【BZOJ4105】平方运算(THUSC2015)-
线段树
+找规律
做法:本题需要用到
线段树
+找规律。看到这种特别诡异的区间操作,不能直接用
线段树
维护,那肯定又要分析操作的性质了。
Maxwei_wzj
·
2020-08-10 14:56
数据结构-线段树
【BZOJ2038】小Z的袜子(2009国家集训队)-莫队算法
测试地址:小Z的袜子做法:设f(i)为颜色i在区间[l,r]内出现的次数,则区间[l,r]的答案为:ΣC(2,f(i))/C(2,r-l+1),面对这种东西
线段树
就无能为力了......怎么办呢?
Maxwei_wzj
·
2020-08-10 14:55
算法-莫队算法
[洛谷模板大赛]题解 模板整理QAQ
个题因为时间不太够了……最近也想整理模板,看到这么个模板大赛自然是把持不住辣~除了T2平衡树不会做之外其他的都可以,T5好像是递归版Spfa,现学了一下,其实思想都一样,不用学,其他的没什么了,看模板~T1:
线段树
ZJM__
·
2020-08-10 14:09
洛谷
------OJ------
FZU 1608 Huge Mission ——————
线段树
,维护区间最大值
Problem1608HugeMissionAccept:491Submit:1274TimeLimit:1000mSecMemoryLimit:32768KBProblemDescriptionOaieiisbusyworkingwithhisgraduationdesignrecently.Ifhecannotcompleteitbeforetheendofthemonth,andhecann
陶鸿杰
·
2020-08-10 14:38
线段树
两颗
线段树
大意:有n个操作(n#include#include#include#definelllonglong#defineinf0x3f3f3f3f#include#include#include#include#definelsl,mid,rt=r){returnsum[rt];}intmid=(l+r)/2;intans=0;if(a=r){returnsum1[rt];}intans=0;intm
Grit_ICPC
·
2020-08-10 14:50
线段树
线段树
求区间最大值+区间更新+区间求和+lazy标记
马上就省赛了,
线段树
还缺个求区间最大值的板子,百度,Google全都是一个板子,而且还没有lazy标记,朴素更新,好气啊区间最小值也同理lazy的我只能自己写蓝瘦香菇code:#include#include
风尘tel小城
·
2020-08-10 13:42
洛谷 p3078 (差分,贪心)
题目大意:每次可以对区间[l,r]减1,问我们最少经过多少次操作可以把数列an全变为0.解题思路:一开始想用二分加
线段树
,发现
线段树
不会写。
FrostMonarch
·
2020-08-10 13:04
洛谷
贪心
差分
hdu5860 Death Sequence
题目:n个士兵站成一列,第一个开始每m个人死一个q次询问,问每次死的是谁题解:直接
线段树
暴力就不赘述了,我以前的博客里有。对于dp做法,要记录第i个是第几个轮回死,是此轮回的第几个死。
WJSZMRX
·
2020-08-10 13:16
hdu
其它
线段树
维护区间子段和(模板题)
题解:
线段树
维护一、
线段树
的精髓——区间合并,考虑怎么合并就行了:1、合并的答案要么左区间的子段和,要么是右区间的子段和,要么是中间的一部分2、考虑中间这部分怎么求,也就是说,其实求一个区间的
RevolIA
·
2020-08-10 13:44
模板类(什么
这也是模板)
思维(抖啊
抖啊
抖个机灵儿)
HDU 3950 Parking Log 两颗
线段树
操作B:从左往右数第k个车队离开思路:用一颗
线段树
维护相应空闲的位置的长度的最
CHCXCHC
·
2020-08-10 13:09
线段树
线段树
区间合并
线段树
区间合并主要解决一段连续区间修改,查询问题。
线段树
是树形结构,为解决相邻区间更新,修改问题,我们必须在原本须要维护的区间内,连续段最大值的基础上加上,从左,右两边起,最大的连续区间长度。
Black__wing
·
2020-08-10 13:01
线段树
线段树
基本操作
线段树
主要思想用二分区间的形式,以空间换时间降低时间复杂度,建树时间复杂度为nlog(n),查询时间复杂度为log(n):通常建树时用数组模拟链表建树,即获得上图样式
线段树
,从最大的区间二分,到两个小区间
Black__wing
·
2020-08-10 13:01
线段树
线段树
区间01区间值异或与相邻1个数
#includeusingnamespacestd;inttr[800000],l1[800000],r1[800000];intl2[900000],r2[900000],tr2[800000];intlazy[900000],a[200000];voidpushup(inti,intl,intr){intmid=l+r>>1;r1[i]=r1[i*2+1];if(r1[i*2+1]==r-mi
Black__wing
·
2020-08-10 13:30
线段树
牛客网小白月赛 16 H
线段树
求gcd
线段树
维护差分数组,求gcd#includeusingnamespacestd;constintmaxn=1e5+100;intsum[maxn*4];intgcd[maxn*4],maxx[maxn*
Black__wing
·
2020-08-10 13:30
线段树
区间众数问题,
线段树
区间众数,利用
线段树
,维护区间众数转换的平度序列。
线段树
记录区间最大值,即为连续区间众数连续个数。
Black__wing
·
2020-08-10 13:30
区间众数
线段树
线段树
——区间最值
题目:hdu1754IHateIt题目大意:1、询问区间最大值2、单点更新代码实现:#includeusingnamespacestd;typedeflonglongintll;inta[200009];intt[4*200009];intn,m;voidbuild(intrt,intl,intr){if(l==r){t[rt]=a[l];return;}intmid=(l+r)>>1;build
AcTarjan
·
2020-08-10 13:37
数据结构
loj10121 与众不同(ST算法)(二分)
尝试一开始想的是用权值
线段树
,这样只要满足min[l,r]=1那么这段就是合法的。又想了想让每个合法区间对提问更新,并不太可行。题解ST表+二分绕了一大圈,其实应该直接求以i为结尾的
逐梦起航-带梦飞翔
·
2020-08-10 13:36
刷题之路
ST算法
二分
hdu 4578 Transformation(
线段树
维护区间次方和)
TransformationTimeLimit:15000/8000MS(Java/Others)MemoryLimit:65535/65536K(Java/Others)TotalSubmission(s):1378AcceptedSubmission(s):303ProblemDescriptionYuanfangispuzzledwiththequestionbelow:Thereareni
疯狂的橡树
·
2020-08-10 13:32
线段树&树状数组
洛谷P1020 导弹拦截第二问【最小路径覆盖】
思路本题在洛谷上也著有题解,这里跟洛谷上发的基本一致,也可以到本人洛谷博客上去看https://www.luogu.org/blog/SSL-XXY/这道题n2n2和nlognnlogn的题解已经够多了,什么dp啊,
线段树
啊
ssl_xxy
·
2020-08-10 13:01
GT
图的匹配问题
线段树
动态维护区间最大子段和
constintM=5e4+10;constintinf=0x3f3f3f3f;structnode{intl,r;intmxl,mxr,mx,sum;intmid(){return(l+r)>>1;}}tree[Mmid)returnquery_max(l,r,rt>n;build(1,n,1);intq,op,x,y,c;cin>>q;for(inti=1;i<=q;i++){scanf("%
ANDX
·
2020-08-10 13:40
数据结构模板
【HDU 4027】
线段树
维护区间和
1.题目链接。题意简洁,就是两种操作,区间整体开方,区间求和。类似于区间修改操作但是我们没必要再加上懒惰标记,因为开方开多了这个点就会变成1,所以其实连续对区间操作,没有几次就不用进行修改了,我们特判一下区间都是1的情况,这样就直接修改不加懒惰标记也是可以的。#include#include#include#include#definelllonglong#pragmawarning(disabl
MatrixYg
·
2020-08-10 13:35
数据结构与算法基于c++实现
【POJ 3264】
线段树
维护区间最值
RMQ其实可以很简单的解决,不过最近在复习
线段树
,就用
线段树
写一下。
MatrixYg
·
2020-08-10 13:35
数据结构与算法基于c++实现
线段树
区间取max区间查询
要
线段树
资瓷区间max和询问区间和。设要把$[L,R]$对mx取max。我们可以在
线段树
上二分出小于mx的区间然后变成区间修改了。
weixin_30951389
·
2020-08-10 13:43
线段树
维护区间最大子段和
感觉
线段树
白学了,遇到啥不会啥。对于一个序列,要维护它的区间最大子段和,可以用
线段树
来做。当然,这是查询比较多的情况,比较少就直接O(n)DP了。
悲伤的牛奶
·
2020-08-10 13:34
线段树
上一页
64
65
66
67
68
69
70
71
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他