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
-----线段树
luogu3224 [HNOI2012]永无乡
线段树
合并好写好调,隔壁老王的treap+启发式合并难写难调#include#includeusingnamespacestd;intn,m,fa[100005],val[100005],rot[100005
dianjiaxian1205
·
2020-08-13 13:12
[CF895E] Eyes Closed(
线段树
,期望)
Desctiption传送门:Portal大致题意:给你一个序列,支持两种操作:1l1r1l2y2在\([l1,r1]\)随机选择一个数a,\([l2,r2]\)内随机选择一个数b,交换a,b.2lr询问一个区间的期望.\[n\leq200000;a_i\leq1e9\]Solution根据==期望线性性==,只需要维护出==每个位置元素值的期望==就可以.==区间操作期望==问题的经典套路是==
dayfs2560
·
2020-08-13 13:16
hdu 3954 Level up (
线段树
+懒惰标记维护区间值的变化)
心态有点崩这题wa到爆炸结果发现是我输出的时候少输出了一个冒号差点被送走题目思路给了一个打怪升级的背景给了每个等级所需的经验值然后给了两个要实现的功能1.查询区间最大值2.对区间值进行修改但是他修改的值与当前怪物波数所给的经验值与自身等级有关一开始想直接用lazy数组来标记修改的位置在查询到的时候在对标记的点后面按照他的等级啥的进行修改但是一直wa(这里后来测了加了冒号也还是wa)看了题解发现他们
daydreamer23333
·
2020-08-13 13:15
Luogu 3665 [USACO17OPEN]Switch Grass 切换牧草
感觉看到了之后都比较显然,自己想……算了吧……想不出来的……那么我们可以对每一个点开一个以颜色为下标的
线段树
,对这棵树存一存它儿子的颜色到它的距离,然后在叶子结点维护一个$multiset$,把所有颜色相同的点都丢进去
dashu497731727
·
2020-08-13 13:43
poj 1151 hdu 1542 hoj1119 Atlantis
线段树
扫描线求矩形面积并
终于做到了这部分,以前看到这种类型的题只能直接放弃的,现在终于AC了第一个这种题因为坐标都是浮点数,所以需要对坐标进行离散化(需要插入
线段树
的坐标进行离散化),为了方便,我直接用了map将每个矩形的上下两条水平边存到数组中
cen5bin
·
2020-08-13 13:55
ACM算法
poj 2155 Matrix(二维
线段树
,树套树)
MatrixTimeLimit:3000MSMemoryLimit:65536KTotalSubmissions:24131Accepted:8930DescriptionGivenanN*NmatrixA,whoseelementsareeither0or1.A[i,j]meansthenumberinthei-throwandj-thcolumn.InitiallywehaveA[i,j]=0
clover_hxy
·
2020-08-13 13:22
树套树
线段树
2019杭电多校第二场Longest Subarray HDU - 6602(
线段树
,数字贡献度)
LongestSubarrayHDU-6602题意:一段长度为n的序列,每个元素都的值域为[1,c][1,c][1,c],给出一个参数k,现在要找到一个最大的区间,使得区间内的某种数字要么出现了>=k>=k>=k次,要么出现了0次。∀x∈[1,c],∑i=lr[ai=x]=0or∑i=lr[ai=x]>=k{\forall}x\in[1,c],\sum_{i=l}^r[a_i=x
cy41
·
2020-08-13 13:35
线段树
HDU - 4578 Transformation (
线段树
)
Yuanfangispuzzledwiththequestionbelow:Therearenintegers,a1,a2,…,an.Theinitialvaluesofthemare0.Therearefourkindsofoperations.Operation1:Addctoeachnumberbetweenaxandayinclusive.Inotherwords,dotransforma
hehedad
·
2020-08-13 13:03
数据结构
HDU 1540
线段树
求最大连续区间和问题
TunnelWarfareDuringtheWarofResistanceAgainstJapan,tunnelwarfarewascarriedoutextensivelyinthevastareasofnorthChinaPlain.Generallyspeaking,villagesconnectedbytunnelslayinaline.Exceptthetwoattheends,ever
Charon_HN
·
2020-08-13 13:53
线段树
线段树
-poj1177-N个矩形求边长(离散化+扫描线)
importjava.util.Arrays;importjava.util.Comparator;importjava.util.Set;importjava.util.TreeSet;/***POJ1177(
线段树
bylijinnan
·
2020-08-13 13:49
算法与数据结构
CodeForces_1348EF - Phoenix and Memory 贪心+
线段树
找区间最小值
这题如果没有输出2个解就很简单。是个之前做过的类型:把所有限制按R排序,然后每次取出R最小的,然后从其L开始选,尽量选能选的中最小的。这样选如果能选完,就说明有解。贪心正确性显然:R大的至少可以选则R做为点来用。所以按R升序遍历,每次优先选左边的,能让后边的可选的更多。用set维护可选的数即可。这题加了个输出2个方案。我们考虑最简单的情况:即确定一个序列后,是否有2个位置,posi,posj,使得
夕林山寸
·
2020-08-13 13:55
CF
归并排序求逆序对数 (附另两种姿势BIT
线段树
)
求逆序数三种方法归并排序树状数组
线段树
交换次数即为逆序对数poj1804数据范围小,int不会溢出,spoj上提价需用longlong(注册spoj时,获取验证码时会访问谷歌,所以需要……)#define_CRT_SECURE_NO_WARNINGS
wjsay
·
2020-08-13 13:29
2017暑假
数据结构
ACM-ICPC
线段树
入门题目
hdu1698#includeusingnamespacestd;#definelsonl,m,k>1;build(lson);build(rson);}voidupdate(intL,intR,intl,intr,intk){if(L=r){rt[k]=color;return;}/*如果这次更新的总区间包含这段,那么就去更新子区间并重置该区间*/if(rt[k]){down(k);}intm=
NGUlycc
·
2020-08-13 13:42
小白算法题
2019牛客多校第七场E Find the median 离散化+
线段树
维护区间段
Findthemedian题意刚开始集合为空,有n次操作,每次操作往集合里面插入[L[i],R[i]]的值,问每次操作后中位数是多少分析由于n比较大,并且数可以达到1e9,我们无法通过权值
线段树
来进行操作
azmkinbug41973327
·
2020-08-13 13:09
2019牛客训练赛第七场 C Governing sand 权值
线段树
+贪心
题意森林里有m种树木,每种树木有一定高度,并且砍掉他要消耗一定的代价,问消耗最少多少代价可以使得森林中最高的树木大于所有树的一半分析复杂度分析:n1e5种树木,并且砍树肯定是从便宜的砍,有区间性,可以考虑
线段树
azmkinbug41973327
·
2020-08-13 13:09
线段树
(区间更新)
#include#includeusingnamespacestd;typedeflonglongll;lla[100005];structnode{intl,r;llsum,lazy;}tree[500005];intn;voidUpdown(intrt)//更新区间的值{tree[rt].sum=tree[rt=r)ans+=Query(l,r,rt=r)Update(l,r,val,rt<<
god_alonely
·
2020-08-13 13:26
线段树
HDU 4578 Transformation (
线段树
)
题意:4种操作:区间加和,区间赋值,区间乘法,查询区间一次方和,二次方和,三次方和。思路:区间赋值优先级最高。直接把加法标记和乘法标记直接赋0,然后计算和。其次是乘法,先计算和,如果发现有加法标记,在更新一下加法标记,因为(a+b)*x=a*x+b*x;相当于原数乘以x在加bx,此时加法标记由b变成了bx。最后是加法。更新区间和时,算一下递推关系即可。智障错误,wa了两遍==#include#in
aozil_yang
·
2020-08-13 13:54
HDU
线段树
[SHOI2015]脑洞治疗仪
[SHOI2015]脑洞治疗仪[题目链接]链接[思路要点]较为容易
线段树
维护区间的左边一段连续\(0\)的数量,右边一段\(0\)的数量,除了两边两段\(0\)以外的连续的\(0\)的数量最大值,该区间
aozhuan8489
·
2020-08-13 13:54
启发式合并 splay合并
线段树
合并基础
线段树
合并intmerge(intx,inty,intl,i
ailiumai1945
·
2020-08-13 12:22
Hdu 1542/ POj 1151 Atlantis
线段树
+矩形面积并
题意:给出n个矩形,求它们的面积并思路:采用扫面线的思想,把矩形分成两条边,上边和下边,对横轴建树,然后从下到上扫描上去,cnt这个变量表示了该节点表示的区间被完全覆盖,如果cnt=0,说明没有被完全覆盖(但不代表没有被覆盖),sum代表该区间内被覆盖的线段的长度总和,要算出该节点所代表的区间被覆盖的长度,需要由它左右孩子节点被覆盖的长度相加所得。如果cnt=1,表示被完全覆盖,覆盖长度就是该区间
SeeYouAlways
·
2020-08-13 12:05
数据结构
线段树
矩形面积并
【留坑】UVA10810 求逆序对==求最少相邻元素交换次数 归并排序OR
线段树
OR树状数组
1题意:给出一个数列,允许相邻元素进行交换,求最少交换次数。2分析:求最少交换次数,等同于求该数列中的逆序对数。证明:先将最大的数与后面的数交换直到停止,交换次数=该数的逆序数,然后将次大数与后面的数交换直到停止,交换次数=次大数的逆序数,如此直到最小数,则总共的交换次数=整个数列的逆序对数。代码一:归并排序代码二和三,等复习完数再补3代码一:#include#include#include#in
嚜寒
·
2020-08-13 12:07
ACM
数据结构
(
线段树
单点修改区间查询)洛谷P3374【模板】树状数组 1
洛谷P3374【模板】树状数组1思路:一个小时才写完的模板题。记一下自己错的多的地方:位运算不熟悉,>>和,>=,#definepiipair#definelllonglong#definecl(x,y)memset(x,y,sizeof(x))#definectcerr>1;build(i>1;if(dis=l&&tree[i].rr||tree[i].r>1;if(mid>=l)res+=se
会飞的小蛇
·
2020-08-13 12:44
数据结构
#
线段树
【例题】【
线段树
】
1、!!!!!注意讨论不能建树的情况NKOJ1321数列操作问题时间限制:10000MS空间限制:165536KB问题描述假设有一列数{Ai}(1≤i≤n),支持如下两种操作:将Ak的值加D。(k,D是输入的数)输出As+As+1+…+At。(s,t都是输入的数,S≤T)输入格式第一行一个整数n,第二行为n个整数,表示{Ai}的初始值≤10000。第三行为一个整数m,表示操作数下接m行,每行描述一
Y__XV
·
2020-08-13 12:33
例题
线段树
数据结构
【题】【(堆/
线段树
/树状数组优化DP)/图论】NKOJ 3485 数据
NKOJ3485数据时间限制:30000MS空间限制:165536KB问题描述Mr_H出了一道信息学竞赛题,就是给n个数排序。输入格式是这样的:试题有若干组数据。每组数据的第一个是一个整数n,表示总共有n个数待排序;接下来n个整数,分别表示这n个待排序的数。例如:342–141234,就表示有两组数据。第一组有3个数(4,2,-1),第二组有4个数(1,2,3,4)。可是现在Mr_H做的输入数据出
Y__XV
·
2020-08-13 12:33
题
线段树
动态规划
树状数组
图论
zoj 2301 Color the Ball(区间染色,
线段树
+离散化)
ColortheBallTimeLimit:2SecondsMemoryLimit:65536KBThereareinfiniteballsinaline(numbered123....),andinitiallyallofthemarepaintblack.NowJimuseabrushpainttheballs,everytimegivetwointegersabandfollowbyacha
WEYuLi
·
2020-08-13 12:35
树状数组
线段树
RMQ
2019ICPC南昌网络赛 Hello 2019(
线段树
维护矩阵)
Adigitalstringis"good":whenitcontainsasubsequence91029102anddoesnotcontainasubsequence81028102.Thebadvalueofastringisdefinedashowmanycharactersaretoremoveatleast,sothatthestringsatisfiesthe"good"prope
Timeclimber
·
2020-08-13 12:42
线段树
BZOJ 5039 序列维护 (
线段树
区间乘+区间加)
BZOJ5039序列维护https://www.lydsy.com/JudgeOnline/problem.php?id=5039DescriptionJYY有一个维护数列的任务。他希望你能够来帮助他完成。JYY现在有一个长度为N的序列a1,a2,…,aN,有如下三种操作:1、把数列中的一段数全部乘以一个值;2、把数列中的一段数全部加上一个值;3、询问序列中的一段数的和。由于答案可能很大,对于每个
骑马看骆驼a
·
2020-08-13 12:32
线段树
Phoenix and Memory —— 贪心 +
线段树
题目链接:点我啊╭(╯^╰)╮题目大意:nnn个人标号为111~nnn,顺序被打乱后第iii个人的标号在[Li,Ri][L_i,R_i][Li,Ri]之间保证答案存在,若答案唯一,则输出唯一答案若不唯一,则输出任意两种答案解题思路:考虑先弄出一组答案:按照LiL_iLi排序,枚举加入LiL_iLi后,当前肯定选择RiR_iRi最小的那个人这样肯定是最贪心的,用一个setsetset维护即可记标号为
Scar_Halo
·
2020-08-13 12:01
ACM
-
线段树
线段树
练习题一
线段树
练习题一TimeLimit:10000MSMemoryLimit:65536KTotalSubmit:119Accepted:44CaseTimeLimit:1000MSDescription桌子上零散地放着若干个盒子
SSL_zeng_yu
·
2020-08-13 12:55
c++
水题
离散
『权值动态开点
线段树
』『
线段树
合并算法』简单理解
权值
线段树
与动态开点在正常的
线段树
中,我们总是以下表来进行
线段树
的操作。而权值
线段树
主要用于对具体的权值进行构造
线段树
,用于权值计数,权值操作等问题。
pigzhouyb
·
2020-08-13 12:18
线段树
POJ1151 HDU1542 CODEVS3044 Atlantis 题解&代码
矩形面积求并思路:离散化之后按x轴or按y轴刷扫描线,用
线段树
来表示区间范围。
Rainbow6174
·
2020-08-13 12:12
POJ
HDU
线段树
CODEVS
HDU学习记录
POJ刷题记录
hihoCoder 1586 Minimum 【
线段树
】 (ACM-ICPC国际大学生程序设计竞赛北京赛区(2017)网络赛)...
#1586:Minimum时间限制:1000ms单点时限:1000ms内存限制:256MB描述Youaregivenalistofintegersa0,a1,…,a2^k-1.Youneedtosupporttwotypesofqueries:1.OutputMinx,y∈[l,r]{ax∙ay}.2.Letax=y.输入ThefirstlineisanintegerT,indicatingthe
PHILIP0917
·
2020-08-13 12:54
hdu 4117 GRE Words (AC自动机+
线段树
)
hdu4117GREWords(AC自动机+
线段树
)题意:给出n个字符串,每个字符串有一个权值,我们从中拿出若干个来,这若干个字符串,前一个必须是后一个的子串,问,我们能拿出的这若干个串的权值和最大是多少
No__stop
·
2020-08-13 12:15
AC自动机整理
zoj 2112Dynamic Rankings(树状数组套splay)
zoj2112DynamicRankings(树状数组套splay)
线段树
套splay消耗空间略大,改成树状数组套splay就可以了。
No__stop
·
2020-08-13 12:15
平衡树
平衡树
nssl1459-空间简单度【扫描线,
线段树
】
正题题目大意nnn个点的一颗树,合法路径定义为一条路径上每个点的编号相差大于KKK。求合法路径数解题思路首先我们可以求不合法的路径数,这样我们就有了K∗nK*nK∗n个不合法(即不能在同一个路径上)的点对。然后这题就和之前一题jzoj6276一样了大概就是用矩形表示不合法的路径,之后用扫面线求矩形的面积并即可。codecodecode#pragmaGCCoptimize(2)%:pragmaGCC
ssl_wyc
·
2020-08-13 12:01
数据结构
nssl
扫描线
线段树
2733: [HNOI2012]永无乡
题解:并查集+权值
线段树
合并我的收获:
线段树
合并#include#include#includeusingnamespacestd;constintM=100005;constintTM=2000005
Mmh2000
·
2020-08-13 12:24
2501-2750
[COCI2017-2018#1] Plahte
我们这里有两种方法:用扫描线,
线段树
处理y轴,每
MR0304
·
2020-08-13 12:42
POJ - 2528 - Mayor's posters (
线段树
区间覆盖+离散化)
题解:因为范围过大,所以我们考虑离散化,离散化之后把数组的下标作为
线段树
建树的区间,但是要注意:如下面的例子(题目的样例),因为单位1是一个单位长度,将下面的123467810————————12345678
Rotepad
·
2020-08-13 12:36
ACM_刷题
ACM_线段树
WHU网络赛store
线段树
+二分
题意一共有n件商品,编号为1~n,有两种操作。MXY:在第X天会卖出编号为Y的商品。DXY:询问[1,X]中卖出的商品编号>=Y中编号最小的一个是哪个,没有的话输出-1。对于每个询问D,输出相应的答案。数据范围1#definelsonrt>1;if(pmid)update(rson,p,v);pushup(rt);}intquery(intrt,intl,intr,intql,intqr){if(
Link_Ray
·
2020-08-13 12:00
二分
线段树
bzoj1858:序列操作 (
线段树
区间信息合并)
1858:[Scoi2010]序列操作TimeLimit:10SecMemoryLimit:64MBDescriptionlxhgww最近收到了一个01序列,序列里面包含了n个数,这些数要么是0,要么是1,现在对于这个序列有五种变换操作和询问操作:0ab把[a,b]区间内的所有数全变成01ab把[a,b]区间内的所有数全变成12ab把[a,b]区间内的所有数全部取反,也就是说把所有的0变成1,把所
KsCla
·
2020-08-13 11:12
普通nlog(n)数据结构
[省选] [
线段树
] [差分数组] [BZOJ1558] [JSOI2009] 等差数列
题目传送门。因为一道脑洞题写的这个…等差数列公差相等,果断维护差分数组,但是差分数组会比原数组少一个元素,这里需要注意。这里维护di=ai−ai−1i∈[2,n]d_i=a_i-a_{i-1}\\\\\i\in[2,n]di=ai−ai−1i∈[2,n]且i∈Ni\in\mathbb{N}i∈N修改相当于两个点修改和一个段修改。对于[l,r][l,r][l,r]的修改,需要的修改为:dl−>dl+
HeRaNO
·
2020-08-13 11:36
线段树
差分数组
省选
codeforces-61E (
线段树
求三元逆序对)
题意:给出一个序列,求三元逆序对题解:枚举中间的数就好了,那么结果就是它左边大于它的数的个数*右边小于它的数的个数,和求
线段树
二元逆序对的方法是一样的。
GrimCake
·
2020-08-13 11:28
codeforces
acm_数据结构
[BZOJ4184]shallot(
线段树
+线性基)
======这里放传送门======题解线性基不支持删除,但是可以发现每个数字出现的范围是一段区间,那么如果用
线段树
把这一段区间打上标记,然后就相当于是每次单点查询。也就是搞一个下标是时间的
线段树
。
FromATP
·
2020-08-13 11:49
BZOJ
线段树之类的
高斯消元消来消去
2020牛客暑假多校第二场补题
比赛链接:link题目Akmp+HashB几何CdfsD签到题F单调区间+gcd筛Gbitset神奇用法H权值
线段树
(动态开点/离散化)J群论 Akmp+Hash 题意是说,定义了两个字符串间的函数
W_Zifan
·
2020-08-13 11:02
大魔法师
一、题目点此看题二、解法很容易看出来是
线段树
打标记的题,但是标记的顺序就很恶心。
C202044zxy
·
2020-08-13 11:18
线段树
矩阵加速
CF474E Pillars (
线段树
优化DP)
题目链接题目大意给出一个长度为nnn的序列aaa和一个参数mmm,要求求出一个最长的子序列,满足相邻元素的差大于等于mmm解题思路本题跟LIS的O(nlogn)\operatorname{O}(n\logn)O(nlogn)做法非常相似,需要用到桶。首先,我们要将a[i]a[i]a[i]离散化。设f[i]f[i]f[i]表示以a[i]a[i]a[i]结尾的最长满足条件的子序列的长度,pre[i
_Wolverine
·
2020-08-13 11:13
题解
#洛谷
CF115E Linear Kingdom Races(
线段树
优化DP)
题目链接看完题后,你的第一个想法可能是考虑每场比赛是否进行,并计算相应的路费。但是,如果两次比赛的路线重合,路费就只用支付一次。由此就产生了后效性,对我们的DP造成了困难。那么,我们可以反过来想:考虑每条路是否支付路费(修路),并算出所有可以进行的比赛赚到的钱。设f[i]f[i]f[i]表示前iii条路中修复若干条路后可以赚到的最多的钱。转移方程:f[i]=f[i−1]f[i]=f[i-1]f[i
_Wolverine
·
2020-08-13 11:13
题解
#洛谷
树链剖分模板
我使用了
线段树
,需要注意的是树链剖分的额外空间极大,需要尽可能压缩
线段树
的部分并无改动。关键在于剖分的过程。
bzcxl
·
2020-08-13 11:40
树链剖分
hdu 1542 (poj1151) Atlantis (
线段树
求矩形面积并)
离散化+扫描线+
线段树
。虽然这题直接离散化也能过,但想要学习一下
线段树
求矩形并,就网搜各种
线段树
求矩形并的方法。其实做法还是跟离散化的做法差不多。
Balloons2012
·
2020-08-13 11:03
数据结构
HDU 5997 & bestcoder #90 C
线段树
传送门:HDU5997题解最初想过用vector存储,但是没敢写….区间合并+成段更新这题和普通
线段树
区间更新的区别就是待更新的区间不确定,所以只要把要更新区间表示出来,就行了x->y找到x代表的vector
数论只会GCD
·
2020-08-13 11:17
tree)
HDU
线段树区间合并
上一页
58
59
60
61
62
63
64
65
下一页
按字母分类:
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
其他