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
-----线段树
POJ2528 Mayor's posters (
线段树
+离散化)
网上很多人说这是一道
线段树
水题,但是我却错了一晚上,下面我来分析一下这道题做的时候会遇到的困惑如果看到了这篇题解,我相信你已经看到其他题解中离散化的正确方法,这也是本题中最难的一个地方但是我发现网上的题解并没有详细讲述为什么这样就能防止错误情况
Isomorphic
·
2020-02-13 12:00
2020牛客寒假算法基础集训营4 C : 子段乘积
C:子段乘积考察点:
线段树
,尺取,乘法逆元坑点:区间要做到不重不漏,longlong侃侃:这道题在比赛是写的尺取,但是写了半天发现不好处理除0问题(浮点错误),需要用到乘法逆元(就是把除法转换成乘法的的过程
RUCKYONE
·
2020-02-13 10:00
hdu1556(
线段树
与BIT—区间更新)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1556ProblemDescription:N个气球排成一排,从左到右依次编号为1,2,3....N.每次给定2个整数ab(a#includeusingnamespacestd;constintMAX_N=1r)return;////闭区间[l,r]if(a>1);update(a,b,k*2+1,((
sugar_coated
·
2020-02-13 06:01
算法竞赛进阶指南dp学习笔记——Day2
区间DP以区间长度作为阶段,区间左右端点作为状态的一类DP,其子问题与原问题构成像
线段树
一样的结构【石子合并】这太经典了...不想再做一遍了【Polygon】倍增一倍做石子合并【ExploringPyramids
hsez_cyx
·
2020-02-12 20:00
2020牛客寒假算法基础集训营4 H.坐火车(树状数组/
线段树
)
感觉网上的题解都略微简略包括官方题解,所以打算写一个尽可能详细的题目链接:https://ac.nowcoder.com/acm/contest/3005/H题意:每个车厢都有三个参数,colori,li,ri,询问对于每个车厢,在其两边的车厢有多少对车厢颜色相同,并且颜色的范围在[li,ri]内思路:首先我们定义几个数组,pre[i]代表整个数组的前缀中color[i]的个数,suf[i]代表整
overrate_wsj
·
2020-02-12 17:00
lost cows
这道题用树状数组做比较好,虽然树状数组能做的
线段树
也可以做到,但是树状数组更简洁方便,易操作原理便是第x个数的二进制数最后一个“1”,决定tree的结点的长度比如:sum[3]=tree[3]+tree
sos3210
·
2020-02-12 11:00
数据结构与算法(一)线性表之顺序存储和ArrayList、Vector实现
本系列介绍的数据结构包括数组、链表、栈、队列、哈希表,二叉树、二分搜索树、平衡二叉树、AVL、红黑树、哈夫曼树、Trie、堆、
线段树
、KD树,并查集等。在介绍数据结构
Chiclaim
·
2020-02-12 01:54
[CF91B] Queue - 权值
线段树
有n个人在队列中等待。假如某个人前面有一个人年龄比他小,那他就会不高兴;定义他的“不高兴度”为他前面留他最远的年龄比他小的人与他的距离,求每个人的不高兴度。nusingnamespacestd;constintinf=1e+9+7;constintN=4000005;intn,a[N],b[N],ch[N][2],ind=1,ans[N];voidmodify(intp,intl,intr,int
Mollnn
·
2020-02-11 21:00
BZOJ #5457: 城市 [
线段树
合并]
线段树
合并的板子题,每次从下到上合并就完事了//byIsaunoya#includeusingnamespacestd;#definerep(i,j,n)for(inti=j;i#definefirfirst
_Isaunoya
·
2020-02-11 19:00
A Simple Problem with Integers
这是一道简单应用
线段树
的题代码也是书上的,敲一边熟悉一下#include#includeusingnamespacestd;constintMAX=1e5+10;longlongsum[MAX>1));
sos3210
·
2020-02-11 17:00
期望线性性+
线段树
双tag标记——cf895E
/*从区间[l1,r1]取出一个数,这个数的期望值为e1=(sum[r1]-sum[l1-1])/(r1-l1+1)同理从区间[l2,r2]里取出一个数,这个数期望为e2=(sum[r2]-sum[l2-1])/(r2-l2+1)根据期望线性性,[l1,r1]里每个数被选中的概率是1/len1所以一次交换后该区间的a[i]->(len1-1)/len1*a[i]+1/len1*e2同理[l2,r2
zsben
·
2020-02-11 17:00
Atlantis HDU - 1542
线段树
+扫描线 求交叉图形面积
//永远只考虑根节点的信息,说明在query时不会调用pushdown//所有操作均是成对出现,且先加后减//#include#include#include#include#includeusingnamespacestd;constintN=100010;intn;//存每一个操作structSegment{//区间长度doublex;//纵坐标doubley1,y2;//权值intk;//按
晴屿
·
2020-02-11 16:00
Just a Hook HDU - 1698Just a Hook HDU - 1698
线段树
区间替换
#include#include#include#includeusingnamespacestd;typedeflonglongll;constintN=1e5+10;structnode{intl,r;intsum;intadd;}tr[N*4];voidpushdown(introot){if(tr[root].add){tr[root>1;build(roottr[root].r||qr>
晴屿
·
2020-02-11 08:00
Mayor's posters POJ - 2528
线段树
区间覆盖
//
线段树
区间覆盖#include#include#include#includeusingnamespacestd;constintN=100010;intflag;structnode{intl,r
晴屿
·
2020-02-11 07:00
A Simple Problem with Integers POJ - 3468
线段树
区间修改+区间查询
//add,懒标记,给以当前节点为根的子树中的每一个点加上add(不包含根节点)//#include#include#include#includeusingnamespacestd;typedeflonglongLL;constintN=100010;intn,m;intw[N];structNode{intl,r;//总和//如果只考虑当前节点及子节点上的标记,当前区间和是多少,没考虑所有祖先
晴屿
·
2020-02-11 06:00
LintCode 206 [Interval Sum I]
对于数组[1,2,7,8,5],查询[(1,2),(0,4),(2,4)],返回[9,23,20]解题思路建立下标型
线段树
,自下而上,回溯更新root.sum=root.left.su
Jason_Yuan
·
2020-02-11 03:56
关于
线段树
的感悟(Segment Tree)
线段树
的感悟:学过的东西一定要多回头看看,不然真的会忘个干干净净。
RUCKYONE
·
2020-02-10 22:00
Segment Tree 总结
为什么要学习
线段树
?这是一个advanced知识点,二线公司一般不会问。如果你想去面一线公司,特别是谷歌是明确要求这个知识点的。我有认识人电面确实被问到。
尚无花名
·
2020-02-10 22:03
LintCode 439 [Segment Tree Build II]
原题
线段树
是一棵二叉树,他的每个节点包含了两个额外的属性start和end用于表示该节点所代表的区间。
Jason_Yuan
·
2020-02-10 16:11
[P5490] 【模板】扫描线 -
线段树
至于
线段树
,要么对\(x\)坐标离散化,要么动态开点。我觉得后者比较快乐。
Mollnn
·
2020-02-10 15:00
洛谷P6071 Treequery(树链剖分+
线段树
合并+可持久化)
(在接下来的描述和图片中,用$dis_u$表示根(1号点)到$u$的路径的边权和;$[l,r]$范围内的点用蓝色表示,$p$用红色表示)我们考虑$lca_{l,l+1,\cdots,r}$(以下记为$lca$,用橙色表示),有以下情况:1.$lca$为$p$的孩子(或$p$)这表明$[l,r]$均为$p$的孩子(或$p$),那么答案为$dis_{lca}-dis_p$2.$[l,r]$中既有$p$
wangyuchen
·
2020-02-10 14:00
[SDOI2008] 校门外的区间 -
线段树
UT即将区间\(T\)范围赋值为\(1\)IT即将区间\(U-T\)范围赋值为\(0\)DT即将区间\(T\)赋值为\(0\)CT由于\(S=T-S=T(U-S)\),即将原状态取反后,将\(U-T\)范围赋值为\(0\)ST即将区间\(T\)翻转至于开闭区间,我们不妨把下标缩放到原来的两倍,然后在输入输出的时候讨论一下即可这题的输入真的挺正常(鬼畜)#includeusingnamespaces
Mollnn
·
2020-02-10 09:00
[USACO08FEB] 酒店Hotel -
线段树
第一行输入n,m,n代表有n个房间,编号为1---n,开始都为空房,m表示以下有m行操作,以下每行先输入一个数i,表示一种操作:若i为1,表示查询房间,再输入一个数x,表示在1--n房间中找到长度为x的连续空房,输出连续x个房间中左端的房间号,尽量让这个房间号最小,若找不到长度为x的连续空房,输出0,并且在这x个空房间中住上人。若i为2,表示退房,再输入两个数x,y代表房间号x---x+y-1退房
Mollnn
·
2020-02-10 08:00
K-th Number
K-thNumber两种写法:分块、
线段树
(归并树)区间种第k个数的特点是:①在区间中不超过x的数不少于k个②在区间中小于x的数有不到k个分块:所以可以对答案进行二分,然后在判断是否满足的时候利用分块进行优化
CADCADCAD
·
2020-02-09 23:00
清北学堂—2020.1提高储备营—Day 2 afternoon(
线段树
、树状数组)
qbxtDay2afternoon——2020.1.18济南主讲:李佳实目录一览1.
线段树
2.二叉搜索树(略过)3.树状数组总知识点:基础数据结构(本人初学感觉好难)一、
线段树
1.描述:
线段树
是一种分治的思想
Pursue_Dreams
·
2020-02-09 17:00
A Simple Problem with Integers
ASimpleProblemwithIntegers这道题目只涉及区间修改以及区间查询,所以只要我们利用
线段树
或者树状数组进行优化,这道题就很容易解决了。
CADCADCAD
·
2020-02-09 14:00
2020牛客寒假算法基础集训营3
甚至从这道题已经可以知道下一道题的
线段树
要怎么维护了。题意:有一个01串,求每对1之间的距离和。题解:每右
KisekiPurin2019
·
2020-02-09 07:00
「Luogu P3178」[HAOI2015]树上操作
Luogu分析我们把树上问题利用\(dfs\)序转化成序列问题然后直接上
线段树
解决即可。考虑将
线段树
的每个叶子结点设为在原树上
ihlwer
·
2020-02-09 01:00
I Hate It HDU - 1754
线段树
单点修改+区间最值
#include#includeusingnamespacestd;constintN=2e5+10;intm,n,p;structnode{intl,r;intv;}tr[N*4];voidpushup(intu){tr[u].v=max(tr[u>1;build(u=l&&tr[u].r>1;intv=0;if(lmid)v=max(v,query(u>1;if(x<=mid)modify(u
晴屿
·
2020-02-08 20:00
BZOJ 4025: 二分图
线段树
分治+按秩合并的并查集解决加边删边的问题。一个图是二分图当且仅当点数大于等于二并且不存在奇环。那么可以用带权并查集维护路径长度,会出现环就是当加入一条边是产生环并且原路径长度为偶数。
Mrzdtz220
·
2020-02-08 12:00
Mayor's posters(
线段树
+离散化+lazy)
Mayor'sposters(
线段树
+离散化+lazy)题目大意:在墙上贴海报,然后很多海报,一层又一层,问你最后可以看到多少张海报。
Angle_yin
·
2020-02-08 08:00
线段树
分成几 段和最大
题目传送#include#include#include#definelsonl,m,rt>1;build(lson);//左孩子l,m,rt=r){maxv[rt]+=c;add[rt]+=c;return;}PushDown(rt);intm=(l+r)>>1;if(Lm)update(L,R,c,rson);PushUP(rt);}intquery(intL,intR,intl,intr,i
_弓长_大人
·
2020-02-08 01:58
2020牛客寒假算法基础集训营2 J-求函数 (
线段树
维护矩阵乘法)
题目链接:https://ac.nowcoder.com/acm/contest/3003/J思路:方法①f1(1)=k1+b1=(k1)+(b1)f2(f1(1))=k2∗(f1(1))+b2=k2∗k1+k2∗b1+b2=(k2∗k1)+(k2∗b1+b2)f3(f2(f1(1)))=(k3∗k2∗k1)+(k3∗k2∗b1+k3∗b2+b3)通过上面的展开,我们可以发现一个式子可以分成两部分
overrate_wsj
·
2020-02-07 20:00
线段树
维护区间合并——cf1285E
要先找出一开始有多少段,然后计算删掉每条线段的贡献,求个最大值就可以删每条线段的贡献可以用
线段树
区间合并来做ps:正解其实很简单。。
zsben
·
2020-02-07 17:00
2020牛客寒假算法基础集训营2 - J 求函数 (
线段树
)
2020牛客寒假算法基础集训营2-J求函数(
线段树
)链接:https://ac.nowcoder.com/acm/contest/3003/J来源:牛客网求函数时间限制:C/C++1秒,其他语言2秒空间限制
茄子Min
·
2020-02-07 16:00
LintCode 205 [Interval Minimum Number]
对于数组[1,2,7,8,5],查询[(1,2),(0,4),(2,4)],返回[2,1,5]解题思路使用
线段树
,典型例题首先构造node类,实现Query和Build完整代码"""
Jason_Yuan
·
2020-02-07 11:09
【HDU 1754】震惊!max()传入耗时函数导致超时。
pid=1754这一题裸的
线段树
区间最值+单点修改,但有一个巨大的坑……returnmax(cnt,query(i/2,j/2));//超时改成:intq=query(i/2,j/2);returncnt
接骨木go
·
2020-02-07 05:07
2020牛客寒假算法基础集训营2(全解)
题目说明:A.做游戏B.排数字C.算概率D.数三角(水题)(思维)(期望DP)(思维,勾股定理)E.做计数F.拿物品G.判正误H.施魔法(思维)(贪心)(类hash)(DP)I.建通道J.求函数(思维)(
线段树
lonely_wind
·
2020-02-07 00:00
一个简单的整数问题2 树状数组
线段树
地址https://www.acwing.com/problem/content/description/244/给定一个长度为N的数列A,以及M条指令,每条指令可能是以下两种之一:1、“Clrd”,表示把A[l],A[l+1],…,A[r]都加上d。2、“Qlr”,表示询问数列中第l~r个数的和。对于每个询问,输出一个整数表示答案。输入格式第一行两个整数N,M。第二行N个整数A[i]。接下来M行
等风
·
2020-02-06 21:00
luogu P2412 【查单词】
这题我首先想到把字符串离散化成区间[1,n][1,n]的整数,然后放进
线段树
里做区间最值就好了。
Lates
·
2020-02-06 21:00
洛谷P1383 高级打字机(主席树)
并且可以撤销已经撤销的操作所以我们可以使用主席树这种数据结构来维护,如果撤销,就是将当前版本指向指定位置的版本这题其实没有建树的必要,但是我习惯建树,我们需要一个len数组和一个pos变量记录有多少个版本以及如果插入应该在哪个位置插入,这样只需
线段树
就能解决
Isomorphic
·
2020-02-06 14:00
树剖小结(简述)
比较恶心,特别是
线段树
题目链接:P3384【模板】重链剖分详解见:大佬博客我的代码:\(Code\):#include#includeusingnamespacestd;constintMAXN=100005
Y_atituade
·
2020-02-05 18:00
Query on a tree 树链剖分 [SPOJ-QTREE]
题目:https://www.spoj.com/problems/QTREE/en/树链剖分模板题注意一点,我们用dfs序对节点进行编号,其实也对应
线段树
中该节点与其父节点连边的编号因此统计到最后时(两节点在同一条重链上
潇湘风夜
·
2020-02-05 11:00
线段树
,思维——cf1295E
/*给定一个数组,切割成pre,suf,现在要移动这两个集合中的元素,使Max(pre)usingnamespacestd;typedeflonglongll;constintMAXN=200005;constllINF=(1LLm)update(ql,qr,v,m+1,r,n<<1|1);else{update(ql,m,v,l,m,n<<1);update(m+1,qr,v,m+1,r,n<<
zsben
·
2020-02-05 10:00
BZOJ 2001: [Hnoi2010]City 城市建设
好鬼的CDQ分治,感觉复杂度好迷的说感觉就是个剪枝的暴力首先看到题目,动态MST,妈妈我会
线段树
分治+LCT,然后这题就做完了大体上很套路,我们把修改看作一条边的删除以及一条新边的加入,就可以求出每条边出现的时间区间然后按时间为下标建
线段树
hl666
·
2020-02-04 18:00
BZOJ 3600. 没有人的算术
这道题的难处就在于快速对两个“数”进行比较,若能快速对两个“数”进行比较,查询操作用
线段树
维护即可。
Mrzdtz220
·
2020-02-04 11:00
CF538H Summer Dichotomy 二分图、扫描线、
线段树
标算太NB我觉得用这种做法,这道题难度只有2500如果原图不是二分图显然无解。否则对于一个点数\(\geq2\)的连通块的两边可以缩成两个点,它们不能染相同的颜色。对于独立的点可以新建一个\([0,10^9]\)的虚点让这个点和虚点不染相同颜色。然后就变成了有\(n\)个区间、\(\frac{n}{2}\)对限制,每个区间仅在一对限制中。枚举颜色\(1\)中所有区间的交,这样对于每一对限制连接的两
cjoier_Itst
·
2020-02-03 23:00
AcWing 255. 第K小数 (主席树写法)
区间k小数是主席树的模板题目,如果区间不包含,用莫队+权值
线段树
也能解主席树是可持久化
线段树
,所为可持久化,就是每次只新增不一样的节点,而保留前面的版本,这样可以做到查询。
Isomorphic
·
2020-02-03 18:00
《算法竞赛进阶指南》打卡活动 #0x00 基本算法
我搞一个区间
线段树
,每次update中间一段使得他们的优先度整体下降到比两端中较小的优先度还要小。然后反过来按照优先度分配身高。哈哈!根本不需要什么算法。不过每次都不询问为什么要
线段树
呢?差分不香吗?
KisekiPurin2019
·
2020-02-03 07:00
bzoj5541/uoj481 NOI2019 弹跳
考虑使用二维
线段树
优化。为什么是假的,因为我采用了四叉树。对于一个弹跳装置,向它对应的线段
1124828077ccj
·
2020-02-02 20:00
上一页
109
110
111
112
113
114
115
116
下一页
按字母分类:
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
其他