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
#线段树
【集训队作业2018】三角形(
线段树
合并)
传送门题解:加入一个数,相当于是先加上Ai=wiA_i=w_iAi=wi,再减去Bi=∑j∈soniwjB_i=\sum_{j\inson_i}w_jBi=∑j∈soniwj,然后代价就是一个操作序列的前缀最大值。先考虑一下没有限制的的时候,怎么使得这个前缀最大值最小,我们可以分为两个部分:Ai−Bi<0,Ai−Bi≥0A_i-B_i\lt0,A_i-B_i\ge0Ai−Biusingnam
DZYO
·
2020-08-18 01:36
线段树
sequence
中有多少个连续子序列是K好的题解由于按位与运算是不增的,我们可以把相同的后缀与值分段存下来,显然不会有超过30个段这就很有意思了我们可以离线处理,按询问的右端点排序,然后我们从左往右枚举以当前位置为右端点的答案可以用
线段树
来更新
lcc_cat
·
2020-08-18 01:02
数据结构
【数据结构&图论】BZOJ1095Hide 捉迷藏
题目大意给出一颗树,每个点都是黑/白色,初始状态每个点都是白色的,有两种操作:1,翻转某个点的颜色2,询问整个图中最远的两个白色点的距离(若没有白色点输出-1,只有一个输出0)分析本题有动态点分治/
线段树
储存括号序列两种做法
616156
·
2020-08-18 01:06
数据结构
图论
平衡树
点分治
线段树
模板
线段树
1(加法)#include#include#defineroot1,n,1#definelsonl,mid,rt>1));sum[rt>1);add[rt]=0;}}voidbuild(intl,
须佐之男9000
·
2020-08-18 00:13
数据结构
【BZOJ1095】【ZJOI2007】捉迷藏 括号序列+
线段树
维护
原题链接1095:[ZJOI2007]Hide捉迷藏TimeLimit:40SecMemoryLimit:162MBSubmit:2109Solved:868[Submit][Status][Discuss]Description捉迷藏Jiajia和Wind是一对恩爱的夫妻,并且他们有很多孩子。某天,Jiajia、Wind和孩子们决定在家里玩捉迷藏游戏。他们的家很大且构造很奇特,由N个屋子和N-1
_傲寒
·
2020-08-18 00:38
线段树
文章目录
线段树
修改和查询:斑点蛇
线段树
用于区间查询和修改,优化其时间复杂度区间长度为len=10,每个节点l和r表示区间l-r的,根节点为1-10对于每个节点,左孩子的区间为:[l-(l+r)/2]右孩子的区间为
战场医疗兵
·
2020-08-18 00:39
算法模板
3xian的acm
其深厚的数据结构功底倍受推崇,对
线段树
的组织、动态树以及字符串类数
playwfun
·
2020-08-18 00:55
远方的脚印
计算机
编码
人物
ZOJ 4100 浙江省第16届大学生程序设计竞赛 A题 Vertices in the Pocket
就是加入的边都连接两个不同的联通块最多联通块个数,首先要把各个联通块补成完全图,如果还有剩的边,则按照联通块的大小从大到小排序,每次合并最大的两个联通块,直到没有边剩下问题的关键是如何求解最多联通块个数,暴力排序是肯定不行的
线段树
Spy97
·
2020-08-18 00:50
线段树
思维
CC March18 Pishty And Triangle
线段树
合并信息(三角形,斐波那契)
题意:长度为n的数列a,Q次操作.操作1:给出(pos,x)令a[pos]=x操作2:给出[L,R]问(a[L],a[L+1]..a[R])能组成的三角形中周长最长的为多少?n,Q=a[i+1]+a[i+2]若一直无法组成三角形则a[i]将以斐波那契数列的增长速度递减下去.因为1usingnamespacestd;typedeflonglongll;constintN=2e5+5,K=51;int
orz11111111
·
2020-08-18 00:18
数据结构
------
基础
CodeChef
codeforces 438D The Child and Sequence(
线段树
:单点更新+区间取模+区间和)
题意:一个n个数的序列。对它进行3种操作。1lr:输入a[l,r]的和2lrx:令[l,r]所有数对x取模3kx:令a[k]=x每到操作1时输出和。(1 ≤ n, m ≤ 1e5).(1 ≤ a[i] ≤ 1e9)分析:看到区间更新,应该想到懒惰标记。但是用懒惰标记应该满足两个条件:标记可以合并可以快速更新区间信息。但是这道题不满足条件2,也就是无法快速更新区间和。而逐个更新每个数取模,仿佛又太慢
nbl97
·
2020-08-18 00:35
线段树
bzoj 1095 捉迷藏(
线段树
)
题外话最近课程不是很紧,准备按AC率版切bz,争取一天一道题以上。然后我喜闻乐见的发现之前剩下的题基本都是数据结构>_=b1时第二段]就被消完了,两段[连在一起,例如:]][[[+]][[=]][[[(?..反了?。。。这样,就得到了一个十分有用的结论:当a2=b1时,(a,b)=(a1,b1-a2+b2)。由此,又得到几个简单的推论:(i)a+b=a1+b2+|a2-b1|=max{(a1-b1
mlzmlz95
·
2020-08-18 00:27
bzoj题解
线段树
POJ - 1177 Picture (
线段树
+ 扫描线)
POJ-1177题目题意:给一堆矩形,求这些矩形的周长#include#include#include#include#includeusingnamespacestd;#definemet(a,b)memset(a,b,sizeof(a))constintmaxn=5010;structnode{intx,v,y1,y2;node(){}node(inta,intb,intc,intd){x=a
shinimashzi
·
2020-08-17 23:26
数据结构
POJ - Picture(
线段树
&扫描线)
题目链接http://poj.org/problem?id=1177TimeLimit:2000MSMemoryLimit:10000KDescriptionAnumberofrectangularposters,photographsandotherpicturesofthesameshapearepastedonawall.Theirsidesareallverticalorhorizonta
ityanger
·
2020-08-17 23:54
ACM题解
#
线段树
#
数据结构
bzoj1095 Hide 捉迷藏 括号序列&
线段树
实际上核心思想是,利用括号序列将两点间距离转化为了该两点间的括号序列化简以后的长度,这样就可以用
线段树
来维护区间最大子段和(并不是指通常的最大子段和)了。AC代码如下(略微一压到70行还算短吧。。)
lych_cys
·
2020-08-17 23:44
bzoj
GCD 2010(
线段树
)
题意:求n个点的最大公约数,有两种操作,增加一个数,删去一个数,删去的数肯定是已经存在的离线处理,先要离散化然后找到每个数相应的位置插入或删除,简单的单点更新gcd(a,b,c,d)=gcd(gcd(a,b),gcd(c,d));#include#include#include#includeusingnamespacestd;#definelsonl,m,rt>1;if(pval;memset(
Rest
·
2020-08-17 23:29
线段树
Ural
刷题之旅
hdu5875(取模的性质,
线段树
,二分)
然后我们用较为暴力的方法,二分加
线段树
,过去了。(我写的T了,好像常数太大,队友的过了,学习了一发姿势,二分嵌在
线段树
里写)。还要注意是两个端点都相等的时候进行操作,不是包含,
luotuoqingshan
·
2020-08-17 23:29
杂题
ural 1019 Line Painting (
线段树
)
#include#include#includeusingnamespacestd;#defineMAX1000000000#defineN10010#defineM5010#definelch(i)((i)b?a:bstructpoint{intm,f,n;}p[N];structsegment{intl,r,v;}s[M];structtree{intl,r,cnt;intmid(){retu
Rest
·
2020-08-17 23:28
Ural
线段树
bzoj1095
线段树
括号序列
题目分析首先%%%岛姐的讲解然后%%%hzwer的代码最后%%%树王的帮助好吧,写写我的感悟。括号序列与距离首先我们对于一棵美丽的树,可以生成一个先序遍历的括号序列,左括号表示到达该店,右括号表示离开该点。例如下图这棵美丽的树,可以生成一个这样的序列:(1(2(3)(5))(4)(6(7)))这个序列有什么用呢?两个点之间的距离,就是它们之间括号序列去掉可以匹配的括号后的括号数。这是为什么呢?是因
litble
·
2020-08-17 23:36
数据结构
Codeforces Round #365 (Div. 2) D
线段树
+离线 (区间内的数有哪些
链接:戳这里D.MishkaandInterestingsumtimelimitpertest3.5secondsmemorylimitpertest256megabytesinputstandardinputoutputstandardoutputLittleMishkaenjoysprogramming.Sinceherbirthdayhasjustpassed,herfriendsdecid
CrossDolphin
·
2020-08-17 23:14
线段树
Snowy Smile(
线段树
维护最大字段 最大子矩阵)
原题:http://acm.hdu.edu.cn/showproblem.php?pid=6638题意:给出[−1e9,1e9][-1e9,1e9][−1e9,1e9]上的2e32e32e3个点,求最大子矩阵。解析:一般的O(N3)O(N^3)O(N3)的做法不能做了,考虑这个题的特点,虽然离散化后有2e32e32e3种横坐标,2e32e32e3种纵坐标,如果做4e64e64e6个点的方法一定是不
JK Chen
·
2020-08-17 23:22
数据结构
POJ - 1177 Picture
POJ-1177Picture
线段树
扫描线求矩形周长并#include#include#include#include#include#include#include#include#include#include
Insist111
·
2020-08-17 22:55
扫描线
【CF438D】 The Child and Sequence(
线段树
取模)
Description给定一个长度为n的序列,支持区间取模、单点更新、区间求和三个操作Solution单点更新,区间求和显然可以用
线段树
直接肝,关键在于区间取模。
Hany01
·
2020-08-17 22:23
Codeforces
线段树
(
线段树
)求区间最大连续子段和
www.acwing.com/problem/content/246/题解:某大佬的区间子段和的解释:https://blog.csdn.net/wu_tongtong/article/details/73385029
线段树
需要维护的是
只有魔法才能对抗魔法
·
2020-08-17 22:27
线段树
bzoj3956 -- 单调栈 +
线段树
对于区间[l,r],求出它的最大值的位置。显然不可能有点对跨越最大值。那么用单调栈预处理出每个点作为左端点、右端点的点对个数,求一个前缀和就可以了。注意相等的情况。代码:#include#include#include#includeusingnamespacestd;#defineN300010inti,j,k,n,m,s[N],Top,a[N],x,y,c[N>1;Build(xa[c[xR|
gjghfd
·
2020-08-17 22:56
单调栈
线段树
[BZOJ1095][ZJOI2007][
线段树
]Hide捉迷藏
[ProblemDescription]捉迷藏Jiajia和Wind是一对恩爱的夫妻,并且他们有很多孩子。某天,Jiajia、Wind和孩子们决定在家里玩捉迷藏游戏。他们的家很大且构造很奇特,由N个屋子和N-1条双向走廊组成,这N-1条走廊的分布使得任意两个屋子都互相可达。游戏是这样进行的,孩子们负责躲藏,Jiajia负责找,而Wind负责操纵这N个屋子的灯。在起初的时候,所有的灯都没有被打开。每
gaotianyu1350
·
2020-08-17 22:14
题解
RMQ(区间最值查询问题)
关于RMQ问题,还是有很多方法来求解的(像
线段树
啊什么的),本篇博客主要介绍一下ST算法要注意的是,ST算法只适用于静态区间求最值,如果是动态的,那还是乖乖打
线段树
吧【
forever_dreams
·
2020-08-17 22:22
#
知识点
RMQ的两种实现方法
引言
线段树
实现RMQ主要思路代码实现时间复杂度ST表实现RMQ主要思路代码实现时间复杂度引言RMQ算法(RangeMinimum/MaximumQuery)是求区间极值的高效算法,依据所需实现的不同性能可以有多种写法
fanyiningHH
·
2020-08-17 22:28
算法心得
spoj Query on a tree V(链分治)
思路:考虑链分治维护答案,每个链顶用一个堆来维护答案,然后对于每条重链开一棵
线段树
维护子树里所有白点到
线段树
最左/右端点的最短距离。然后瞎更新查询即可。
SC.ldxcaicai
·
2020-08-17 22:28
#
树链剖分
#
线段树
数据结构与分治算法
Luogu 2590 [ZJOI2008]树的统计 / HYSBZ 1036 [ZJOI2008]树的统计Count (树链剖分,LCA,
线段树
)...
Luogu2590[ZJOI2008]树的统计/HYSBZ1036[ZJOI2008]树的统计Count(树链剖分,LCA,
线段树
)Description一棵树上有n个节点,编号分别为1到n,每个节点都有一个权值
dipinzhu4111
·
2020-08-17 22:42
php
【
线段树
区间减为平方 + 区间求和】
Canyouanswerthesequeries?TimeLimit:4000/2000MS(Java/Others)MemoryLimit:65768/65768K(Java/Others)TotalSubmission(s):10892AcceptedSubmission(s):2535ProblemDescriptionAlotofbattleshipsofevilarearrangedin
笑着走完自己的路
·
2020-08-17 21:34
线段树
线段树
的知识
虽然网上有很多介绍了,我还是要写一下吧,尽量从它的起源,如何被发现,以及为什么应该是这样的来写,单纯的使用很简单,也不是学习的目的,理解有助于记忆吧,当然可能还有理解不到的地方。起源树状数组英文名称是BinaryIndexedTrees,最早由PeterM.Fenwick于1994年MARCH以ANewDataStructureforCumulativeFrequencyTables为题发表在SO
nextcy
·
2020-08-17 21:12
线段树
Codeforces 873D:构造题
题解:归并排序类似
线段树
的结构,当K是偶数必然是无解的,那么我们先
calabash_boy
·
2020-08-17 21:52
Codeforces
ACM模板(个人代码集整理)(博客停止更新,内附github链接,会在github继续更新)
(*)PAM(*)树链剖分(*)01Trie(*)ACAM(*)KMP(*)LCA(*)主席树(*)点分治(*)kd-Tree(*)斜率优化DP最大流Dicnic(*)最小费用最大流(SPFA)(*)
线段树
calabash_boy
·
2020-08-17 21:52
ACM之坑&套路
#1:一些写法的
线段树
需要开四倍空间。大概是因为:在很靠近叶子的地方,他的编号就很接近2倍了。然后他的孩子(超生)就接近4倍了。例如:Codeforces833B#2:统计答案的
calabash_boy
·
2020-08-17 21:52
codeforces 487E Tourists : 圆方树+链剖+
线段树
+可删除堆
题意:给出一个无向联通图,每个点有一个权值,要求兹磁一种修改操作:修改某点权值;以及一种查询操作:查询某两点x,y的所有简单路径上的最小点权。题解:这东西是必然要缩点的啦,那么问题来了,缩点有三种写法:强连通,点双,边双。显然要点双啦,题目都说了要简单路径的。那么点双一缩,变成一棵树,然后考虑树上两点,他们的简单路径并={树上路径+路径上的点双里面的所有的点}。我们仿照圆方树操作:将每个点双建立一
calabash_boy
·
2020-08-17 21:52
Codeforces
仙人掌
询问某区间内有多少满足某个要求的/某区间以某式子计算出的值(莫队算法,不修改只询问区间)
我觉得能用
线段树
就用
线段树
吧,实在用不了了再来考虑莫队算法,比如下面两道题:http://codeforces.com/contest/617/problem/E(询问某区间内有多少个子区间的异或值是K
ccyy-
·
2020-08-17 21:49
困难
线段树&网络流&后缀数组etc
[kuangbin带你飞]专题七
线段树
N - Picture POJ - 1177 扫描线求周长
求周长其实和面积差不多POJ1177Picture(
线段树
+离散化+扫描线)详解这篇博客讲的不错通常有2中方法。
夕林山寸
·
2020-08-17 21:29
Sqrt tree 学习笔记
博客园同步前置知识你首先要学会的:RMQ(ST表)\text{RMQ}(ST\text{表})RMQ(ST表)分块
线段树
二进制,位运算前记我们把RMQ\text{RMQ}RMQ和分块所解决的问题搬出来:
bifanwen
·
2020-08-17 21:54
Sqrt
tree
RMQ算法分析-区间最最值查询
这个问题也可以用
线段树
解决。问题描述:给出n个数ary[i],快速求出某一区间的最值。算法思想:DP+位运算算法分析,状态:dp[i][j]表示第i为开始,到(i+2^j-1)位的最大/小值。
wjsay
·
2020-08-17 21:35
数据结构
[SCOI2007]降雨量
线段树
和区间最值(RMQ)问题
题目链接P2471[SCOI2007]降雨量听说博客观看效果更佳 这道题是比较经典的RMQRMQRMQ问题,找到X和Y年间的最值来进行判断真假,用
线段树
维护是比较简单好写的。
ailanxier
·
2020-08-17 21:30
线段树
线段树
求树的直径
线段树
求直径可以求任意子树(包括连子树都不算的分散节点集合)的直径,适用范围广。
aigu1964
·
2020-08-17 21:58
树链剖分模板+入门题 SPOJ - QTREE
比如说下面这道题,就是将树分为重链和轻链然后映射到
线段树
上
acm_lkl
·
2020-08-17 21:47
数据结构
线段树
:区间修改,区间求和
#include#definelllonglongusingnamespacestd;constintM=400001;intn,m,k,x,y,val;lla[M],sum[M],lazy[M];voidpushup(intindex){sum[index]=sum[index>1;build(index>1;lazy[ls]+=lazy[index];sum[ls]+=(mid-l+1)*la
accedhy
·
2020-08-17 21:16
c++算法
BZOJ 1835 [ZJOI2010]base 基站选址:
线段树
优化dp
传送门题意有$n$个村庄在一排直线上,现在要建造不超过$K$个通讯基站,基站只能造在村庄处。第$i$个村庄距离第$1$个村庄的距离为$D_i$。在此建造基站的费用为$C_i$。如果在此不超过$S_i$的范围内有基站,那么这个村庄就被覆盖了。如果它没有被覆盖,则需要花费$W_i$的补偿费用。问你最小总花费是多少。题解首先有一个很显然的dp:$dp[i][j]$表示在第$i$个村庄建了基站,此时一共建
a1392136
·
2020-08-17 21:15
BZOJ 3196 Tyvj 1730 二逼平衡树:
线段树
套splay
]$内排名为$k$的值将$a[p]$修改为$k$查询$k$在区间$[l,r]$内的前驱(前驱定义为小于$k$,且最大的数)查询$k$在区间$[l,r]$内的后继(后继定义为大于$k$,且最小的数)题解
线段树
套
a1392136
·
2020-08-17 21:15
git
数据结构与算法
poj - 1177 - Picture(离线化+扫描线+
线段树
)
题意:求n个矩形周长的并(0>思路与poj1151矩形面积的并类似,提取出所有矩形的所有纵向边作为扫描线,从左往右扫描,每处理一条扫描线时,下一条扫描线与当前扫描线的距离乘上当前已覆盖纵向边所包含的连续线段数再乘上2是一个部分周长(横的周长),当前已覆盖纵向边的长度与上一次扫描时覆盖纵向边的长度的差的绝对值则是此次扫描增加的纵向周长,将这些部分周长累加起来就是n个矩形周长的并。。而当前覆盖到纵向边
jchalex
·
2020-08-17 20:26
线段树
BZOJ-4777 Switch Grass(最小生成树+动态开点
线段树
+可删堆)
题意给定一张nnn和节点,mmm条边的无向图,每个点有一个初始颜色,接下来有QQQ个操作,每次操作会更改一个点的颜色,并询问距离最近的不同色点对的最小距离,颜色上限不超过KKK且图中至少有两种颜色。1≤n,Q≤2×1051\leqn,Q\leq2\times10^51≤n,Q≤2×1051≤m≤4×1051\leqm\leq4\times10^51≤m≤4×1051≤K≤1061\leqK\leq
Paulliant
·
2020-08-17 20:27
题目
[集训队作业2018]UOJ 418 三角形 -
线段树
合并 - 堆 - 并查集
题目大意:给一棵树,每次可以选择拿走某个点的所有石子(放到手上),或者在任意一个满足其儿子节点都已经有石子的点xxx放恰好wxw_xwx个石子。对每个点xxx求恰好在这个位置放wxw_xwx个石子,一开始手上要有多少石子?n≤105n\le10^5n≤105。题解:考虑对每个子树怎么暴力求;考虑将问题反过来,每次变为若一个点有石子,就在其儿子节点都放上石子,然后把这个点的石子取走。一开始只有根节点
Mys_C_K
·
2020-08-17 20:11
并查集
堆
线段树合并
AGC011 F Train Service Planning -
线段树
不算神仙的神仙题网上题解写的很清楚了(lhx必须%)#include#include#include#include#include#include#defineN100010#definegcgetchar()#definelintlonglong#definepbpush_back#definerep(i,a,b)for(inti=a;i'9');x=ch^'0';while((ch=gc)>
Mys_C_K
·
2020-08-17 20:11
线段树
HDU 6638 Snowy Smile
线段树
+最大子段和
用
线段树
维护带
Mr_Doublerun
·
2020-08-17 20:34
最大子段和
线段树
上一页
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
其他