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
ACM算法_线段树
线段树
线段树
讲解
线段树
模板1参考题解:#include#includeusingnamespacestd;#definemaxn100010typedefstructnode{intl;//左孩子intr;/
豆苗子
·
2020-08-18 05:20
acm模板/常用算法
HDU-6638【2019 Multi-University Training Contest 6】【区间最大子段和】【
线段树
】
SourceHDU-6638SnowySmileTimeLimit:4000/4000MS(Java/Others)MemoryLimit:524288/524288K(Java/Others)TotalSubmission(s):1609AcceptedSubmission(s):486ProblemDescriptionTherearenpiratechestsburiedinByteland
arc3102
·
2020-08-18 05:20
Codeforces Global Round 7 E. Bombs
思路:维护一个已经加入但还没必要爆炸的炸弹集合s;在加入q[i-1]前对其进行如下循环操作:1.找到其控制范围内被最右的一个炸弹已经引爆了的下标(
线段树
区间求max),将q[i-1]与该炸弹swap(相当于用
zhourenhao
·
2020-08-18 05:19
AtCoder Beginner Contest 163 D - Sum of Large Numbers(规律+同余)
整理的算法模板:
ACM算法
模板总结(分类详细版)D-SumofLargeNumbers/TimeLimit:2sec/MemoryLimit:1024MBScore:400400pointsProblemStatementWehaveN
bool_memset
·
2020-08-18 05:18
思维
AtCoder Beginner Contest 164 D - Multiple of 2019 (数论规律同余)
整理的算法模板:
ACM算法
模板总结(分类详细版)D-Multipleof2019TimeLimit:2sec/MemoryLimit:1024MBScore:400400pointsProblemStatementGivenisastringSSconsistingofdigitsfrom1through9
bool_memset
·
2020-08-18 05:18
基础算法——数论
ACM算法
模板---动态规划
数字三角形的最大值3324511341把局部贪心转化为全区贪心递归1.不使用动态规划#include#includeusingnamespacestd;intdp[101][101];intn;intmaxx(intx,inty){if(x==n){returndp[x][y];//最后一行}else{returnmax(maxx(x+1,y),maxx(x+1,y+1))+dp[x][y];//
公费旅游热爱者
·
2020-08-18 05:47
acm算法
Acwing 95. 费解的开关(位运算+递推)
整理的算法模板:
ACM算法
模板总结(分类详细版)你玩过“拉灯”游戏吗?25盏灯排成一个5x5的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。
bool_memset
·
2020-08-18 05:46
训练
HDU - 5172 GTY's gay friends (
线段树
+前缀和)
GTYhasnngayfriends.Tomanagethemconveniently,everymorningheorderedallhisgayfriendstostandinaline.Everygayfriendhasacharacteristicvalueaiai,toexpresshowmanlyorhowgirlishheis.You,asGTY'sassistant,havetoa
2018_XWJ
·
2020-08-18 05:15
数据结构
A Magic Lamp HDU - 3183
这个题方法很简单啊,可是没有考虑01这个例子,就wr了整整一下午写个博客纪念一下/*
线段树
维护区间最小值贪心:每次找可行区域的最小值*/#include#include#include#includeusingnamespacestd
codediyi
·
2020-08-18 05:50
线段树
rmq
洛谷 - P3373
线段树
区间-修改(进阶)
本题作为模板题实在是太屈才了,是一道很好的题目,做完以后本人对
线段树
有了更深的理解。单就此题而言,两种修改操作是互相影响的,修改乘法的时候是要先考虑加法的修改。
看见我请叫我去学习
·
2020-08-18 05:49
数据结构
树状数组
3.树状数组和
线段树
的区别在哪里树状数组可以解决的问题都可以用
线段树
解决,这两者的区别在哪里呢?树状数组的系数要少很多,就比如字符串模拟大数可以解
视觉小子
·
2020-08-18 05:34
ACM
RMQ问题
二、算法(1)朴素复杂度:O(n)-O(qn)(2)
线段树
复杂度:O(n)-O(qlogn)参考文章:https://blog.csdn.net/weixin_4
STZG
·
2020-08-18 05:03
#
C++
#
经典问题
最大数(
线段树
:单点修改+单点查询)
原题链接题意给定一个正整数数列a1,a2,…,an,每一个数都在0∼p−10∼p−1之间。可以对这列数进行两种操作:添加操作:向序列后添加一个数,序列长度变成n+1n+1;询问操作:询问这个序列中最后LL个数中最大的数是多少。程序运行的最开始,整数序列为空。写一个程序,读入操作的序列,并输出询问操作的答案。输入格式第一行有两个正整数m,p,意义如题目描述;接下来m行,每一行表示一个操作。如果该行的
weixin_42104573
·
2020-08-18 05:18
数据结构-线段树
dp的进阶 (一)
,生命值转移时候需要注意的②集合的定义,判断二进制内部是否有环③很难想到的背包问题④博弈类型的dp⑤排列组合类型dp⑥01背包的变种(01背包+完全背包)⑦codeforcesGoodbye2016E
线段树
维护
weixin_34344403
·
2020-08-18 05:10
hdu-5475 An easy problem---
线段树
+取模
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5475题目大意:给X赋初值1,然后给Q个操作,每个操作对应一个整数M;如果操作是1则将X乘以对应的M,如果是2则除以第M次操作对应的M',求每次操作后X的值对给定值取摸的结果。解题思路:第一眼看这道题,以为就是水题,直接模拟暴力呀,但是发现这样是错误的,因为这里有除法,对除法取模,就应该是逆元,但是逆元
weixin_34302561
·
2020-08-18 05:32
bzoj1690开关灯
线段树
模版1690开关灯1programhehe;2type3tree=record4l,r,h,s:longint;5end;6var7n,m,i,j,k,f:longint;8x:array[0..1000000
weixin_34162401
·
2020-08-18 04:57
CF 187D BRT Contract
T2去了就没想细节QAQ大概就是我们逆序求一下每一个点从0时刻开始走到终点需要用的时间f我们需要找到它遇到的第一个红灯这个就是模意义下的一段区间最小值(把l[i]看做下标i作为权值)这个可以通过动态开点
线段树
实现
weixin_33743703
·
2020-08-18 04:40
题解 P3372 【【模板】
线段树
1】(珂朵莉树解法)
这道题可以用珂朵莉树做,但是由于数据比较不随机,而我也没有手写一颗平衡树,所以就被卡掉了,只拿了70分。珂朵莉树是一种基于平衡树的(伪)高效数据结构。它的核心操作是推平一段区间。简而言之,就是把之前的零零碎碎的都干掉,用一个美而饱满的大区间取代。然后我们更新操作和查询操作就暴力遍历一遍,统计一下和就可以了。Split操作1inlineset::iteratorsplit(intpos){2set:
weixin_33725807
·
2020-08-18 04:05
洛谷P3332 K大数查询
区间插入的话,和普通的整体二分差不多,改成
线段树
维护区间小于mid的数的个数,把增加一个数看成是
线段树
上区间的加+1。//luogu-
weixin_30790841
·
2020-08-18 04:52
整理各种模板(准备随时弃坑)
线段树
1(真题)#include#include#include#includeusingnamespacestd;constintN=1e5+100;longlongtr[N*4],flag[N*4]
weixin_30768175
·
2020-08-18 04:48
P1988 最大数
这道题的解决方法有不少,例如单调栈,单调队列,
线段树
之类的。由于把这道题当作单调栈的练习来做的,所以就只用了单调栈。
weixin_30670925
·
2020-08-18 04:00
NOI&&NOIP知识点集萃
更新日志\(update:2019-3-4\)更新了自为风月马前卒的后缀数组(省选不到一个月了,我才开始学后缀数组怕是要凉凉)\(update:2019-2-21\)更新了一篇李超
线段树
的讲解\(update
weixin_30635053
·
2020-08-18 04:24
HDU 4027【
线段树
+求和+动态改变区间各数的值】
解题思路:看到题目,应很自然想到了
线段树
和数状数组,两种结构都能快速求出区间之和。但两者的优点不尽相同,前者在维护方面更自由一点,后者能更快速维护和求和。这题的解题突破点是:当一个数开根后得到1或0时
weixin_30463341
·
2020-08-18 04:53
2019杭电多校 Snowy Smile hdu6638 (
线段树
最大子段和)
题意:散落一些点,有正负价值,框一个矩形,使得矩形中的价值总和最大题解:先把y离散化,之后x排序后依次插入点,枚举每一种不同的x坐标作为上边界,枚举下边界,
线段树
更新最大子段和#include#include
weixin_30437337
·
2020-08-18 04:48
Picture POJ - 1177 (
线段树
-扫描线)
Anumberofrectangularposters,photographsandotherpicturesofthesameshapearepastedonawall.Theirsidesareallverticalorhorizontal.Eachrectanglecanbepartiallyortotallycoveredbytheothers.Thelengthoftheboundary
weixin_30419799
·
2020-08-18 04:45
多次查询一段区间内有多少个子区间满足其中一个端点为区间最大值。
然后对询问离线,由于要求只包含区间内的贡献,扫描线+
线段树
解决。
weixin_30414155
·
2020-08-18 04:13
RMQ(模板 ST 区间最值,区间频繁次数)
liang5630/article/details/7917702RMQ算法,是一个快速求区间最值的离线算法,预处理时间复杂度O(n*log(n)),查询O(1),所以是一个很快速的算法,当然这个问题用
线段树
同样能够解决
田益铭
·
2020-08-18 03:27
LCA
&
RMQ
模板篇
codeforces 438D
在某位不知名的大大推荐下做了这题,和我上一篇的
线段树
很像,于是怒拍,思想基本相同,记录区间最大值,当最大值小于取模时可以剪枝。
triplebee
·
2020-08-18 03:50
树
ACM竞赛算法
poj3667 Hotel
不错的一道
线段树
。为了计算结果,对
线段树
结点增加几个域:从该区间左端点开始的连续空区间的长度,从该区间右端点为终点的连续空区间的长度,及该区间内的最大连续空区间的长度。
wynist
·
2020-08-18 03:39
Function HDU - 5875 ——
线段树
求取模
题解:用
线段树
就好了,每次查询这个区间内第一个小于等于当前余数的值即可。为什么这样是对的。
天翼之城*
·
2020-08-18 03:54
想法
线段树
2015ACM/ICPC亚洲区沈阳站 HDU 5517 Triple (二维
线段树
)
题意:略首先我们先假设出a1,b1和a2,b2分别为(1,2),和(2,2)。那么我们发现,其实(1,2)对于答案是根本没有贡献的。所以对于b相同的,取a最大的即可。首先我们定义一个矩阵Map[N][N],Map[c'][d']代表当c=c',d=d'的时候,a所能取到的最大值。那么对于一个点c',d'假如任何的(c''>=c'&&d''>=d'(不包括点(c',d'))如果都没有Map[c'']
tianji_fange_tuhao
·
2020-08-18 03:21
区域赛
树链剖分模板 边权、点权区别
details/77532880熟练剖分一般有如下几个步骤:1.dfs1()求出fa,deep,size,son2.dfs2()求出top,p3.add()/Query()树链剖分核心部分4.updata()
线段树
更新操作
风灵无畏YY
·
2020-08-18 02:07
总结
模板
树链剖分
数据结构
【codevs1690】开关灯【
线段树
】
灯亮用1表示,灯灭用0表示
线段树
保存区间和。一个区间取反后亮着灯的个数实际上是r-l+1-t[x];我们在下放标记时只需要lazy[x]=!lazy[x]。
sunshinezff
·
2020-08-18 02:40
线段树
树链剖分
树链剖分树链剖分就是将树分割成多条链,然后利用数据结构(
线段树
、树状数组等)来维护这些链。
SongOrz
·
2020-08-18 02:07
「AHOI2013」 连通图 -
线段树
分治+并查集
题目描述给定一个连通的无向图和若干个小集合,每个小集合包含一些边。对于每个集合,你需要确定将集合中的边从原来的无向图中删除后该图是否保持连通。一个图是连通的当且仅当任意两个不同的点之间存在一条路径连接他们。输入格式输入的第一行包含两个整数n和m(1#include#includeusingnamespacestd;constintN=100005;constintM=400005;structEd
TbYangZ
·
2020-08-18 02:20
数据结构---并查集
数据结构---线段树分治
dfs序
dfs序tree数组为
线段树
,len为
线段树
长度,lazy为懒惰数组#includeusingnamespacestd;constintmaxn=5e4+7;intn,m;vectoradj[maxn]
七九河开
·
2020-08-18 02:48
#
模板
hdu5239
线段树
区间更新,区间平方,取模
DoomTimeLimit:12000/6000MS(Java/Others)MemoryLimit:524288/524288K(Java/Others)TotalSubmission(s):2137AcceptedSubmission(s):559ProblemDescriptionTHEENDISCOMINGGGGGG!Mikehasgotstuckonamysterymachine.Ifh
sdauguanweihong
·
2020-08-18 02:17
线段树
用
线段树
维护树的直径
操作首先我们做出一棵树的dfs序,然后以dfs序为轴建立
线段树
,每个区间维护直径len,以及直径的两个端点x和y。会有这么一个问题:你按
线段树
划分区间,那一个区间内的点可能不连通啊!!!
rzO_KQP_Orz
·
2020-08-18 02:29
算法_线段树
P3373 【模板】
线段树
1和P3373 【模板】
线段树
2
P3372【模板】
线段树
1题目描述如题,已知一个数列,你需要进行下面两种操作:将某区间每一个数加上kk。求出某区间每一个数的和。
아름다운 밤
·
2020-08-18 02:16
程序题目
最短路、KMP、MST、并查集、
线段树
最短路hdu2544dijkstra找距离当前点中未被刷新过距离起点最值的最小值(!vis[j]&&min(d[j]))拿来刷新到其他点的距离如果d[v]+mp[v][j]usingnamespacestd;#definemaxn1000100intnt[10010],a[maxn],b[10010],T,n,m,cnt;#include#definecl(a,b)memset(a,b,sizeo
Aczy156
·
2020-08-18 02:10
ACM
P3373 【模板】
线段树
2(区间加法+区间乘法+区间求和取模)
#include#definelsonl,m,rt>1;}}tree[maxn>sum[rt];sum[rt]%=mod;return;}llm=tree[rt].mid();BuildTree(lson);BuildTree(rson);PushUp(rt);}voidUpdata_add(llc,lll,llr,llrt){if(tree[rt].l==l&&tree[rt].r==r){ad
nEo.大魔王
·
2020-08-18 01:01
板子
hdu1166敌兵布阵(
线段树
)
题目链接#include#includeusingnamespacestd;#definemaxn50000+7//元素总个数#definelsl,m,rt>1;//左右递归Build(l,m,rt>1;//根据条件判断往左子树调用还是往右if(L>1;//下推标记,否则Sum可能不正确PushDown(rt,m-l+1,r-m);//累计答案intANS=0;if(Lm)ANS+=Query(L
Kero_YN
·
2020-08-18 01:24
【BZOJ4538】【HNOI2016】—网络(树链剖分+可删堆)
传送门题意:给定一棵树,支持添加一条路径,删除一条路径,询问不经过某一点的路径中的最大值考虑到删除和询问最大值普通
线段树
很难维护考虑把
线段树
上每个节点设成一个可删堆就可以方便的维护删除和最大值了由于询问
Stargazer.
·
2020-08-18 01:15
树链剖分
线段树
Codeforces-85D Sum of Medians
对于每个查询操作,输出该序列排序后
线段树
每个区间分别维护01234五种余数的位置上数的和。注意这里的位置是相对于每个区间的而非整个序列。另外,还需维护每个区间中当前存在的数字的个数(cnt数组)。
MMMyrcellaaa
·
2020-08-18 01:36
数据结构——线段树
Codeforces-1000F One Occurrence
这是一道
线段树
题。首先想到的是对于每个区间维护其中每个元素的下一个元素出现的位置中最大的一个。nxt维护当前位置的下一个数字相同的位置。每次query返回该区间的
线段树
值即可。
MMMyrcellaaa
·
2020-08-18 01:05
数据结构——线段树
线段树
【集训队作业2018】三角形【
线段树
合并+思路详解】
题目链接【题面】Snuke有一棵nn个点的有根树,每个点有权值wiwi,初始每个结点上都没有石子。Snuke准备了一些石子,并把它们拿在手中。她可以进行以下两种操作任意多次:从手中取wiwi个石子放在结点ii上,进行该操作要求结点ii的所有孩子jj上都有wjwj个石子。将结点ii上的所有石子收回手中。Takahashi想知道对于每个ii,为了在结点ii上放wiwi个石子,Snuke至少需要准备多少
Andres_Lionel
·
2020-08-18 01:15
线段树
数据结构
动态求连续区间和-
线段树
-树状数组-模板
给定n个数组成的一个数列,规定有两种操作,一是修改某个元素,二是求子数列[a,b]的连续和。输入格式第一行包含两个整数n和m,分别表示数的个数和操作次数。第二行包含n个整数,表示完整数列。接下来m行,每行包含三个整数k,a,b(k=0,表示求子数列[a,b]的和;k=1,表示第a个数加b)。数列从1开始计数。输出格式输出若干行数字,表示k=0时,对应的子数列[a,b]的连续和。数据范围1≤n≤10
这是小卢呀
·
2020-08-18 01:36
【BZOJ-1095】[ZJOI2007] Hide 捉迷藏【
线段树
维护树直径】
(1≤n≤105,1≤m≤5∗105)(1\leqn\leq10^5,1\leqm\leq5*10^5)(1≤n≤105,1≤m≤5∗105)思路:这道题的做法有括号序列、动态点分治、
线段树
维护直径。
Gene_INNOCENT
·
2020-08-18 01:33
#
普通线段树
数据结构
Picture POJ - 1177(
线段树
+扫描线解决周长问题)
比解决面积的时候多了一个最左端点是否覆盖标记和最右端点覆盖标记,num是区间内线段段数,pushup注意线段合并的时候,当左子树最右端覆盖,右子树最左端覆盖,合并计算总线段段数时要减一,因为中间两个线段合并为一段#include#include#include#include#include#include#include#include#include#include#include#defin
仰望蓝天xz
·
2020-08-18 01:55
acm
【CodeForces - 438D】The Child and Sequence(
线段树
区间取模操作)
题干:Atthechildren'sday,thechildcametoPicks'shouse,andmessedhishouseup.Pickswasangryathim.Alotofimportantthingswerelost,inparticularthefavoritesequenceofPicks.Fortunately,Picksremembershowtorepairtheseq
韬光养晦_
·
2020-08-18 01:53
线段树
Codeforce~
上一页
47
48
49
50
51
52
53
54
下一页
按字母分类:
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
其他