
线段树
Nowed
把泪水种在心上,一定会开出勇敢的花。
展开
-
#线段树#[gmoj 5361] 捕老鼠
Title有nnn段可覆盖区间[a[i].l,a[i].r][a[i].l,a[i].r][a[i].l,a[i].r]问最少需要多少段这样的区间将[1,n][1,n][1,n]覆盖完。Solution设f[i]f[i]f[i]表示[1,i][1,i][1,i]中的最少覆盖区间数对于每根线段f[r]=min(f[i])+1a[i].l−1≤i<a[i].rf[r]=min(f[i])+1 \\\small a[i].l-1\leq i<a[i].rf[r]=min(f[i])+1a原创 2020-11-01 14:14:53 · 135 阅读 · 0 评论 -
#区间乘# [luogu P3373] 【模板】线段树 2
TitleP3373 【模板】线段树 2Solution注意快读不要为了省常数而不去判断负数注意区间乘要先处理,然后再处理区间和Code#include<cstdio>#include<cstring>#include<string>#include<algorithm>#define LL long long #define rep(i,x,y) for(LL i=x;i<=y;i++) using namespace s原创 2020-10-28 22:19:14 · 177 阅读 · 0 评论 -
#线段树优化建图# [luogu CF786B] Legacy
TitleCF786B Legacy有nnn个点,然后有mmm次操作,其中有333种建图的操作,最后询问的以sss为起点,分别以每个点为终点的最短路。正常连接xxx和yyy连接xxx到[l,r][l,r][l,r]连接[l,r][l,r][l,r]到xxxSolution注意dijkstra中判断vis,因为我也不知道我到底改了些什么东西,最后把vis的位置换了一下就AC了跟这一道题#线段树优化建图# [luogu P4083] [USACO17DEC]A Pie for a Pie原创 2020-10-26 21:33:13 · 196 阅读 · 0 评论 -
#线段树优化建图# [luogu P4083] [USACO17DEC]A Pie for a Pie G
# `Title` [P4083 [USACO17DEC]A Pie for a Pie G](https://www.luogu.com.cn/problem/P4083)有$2*n$个馅饼,其中前$n$个是$B$做的,后$n$个是$E$做的,$B,E$都对馅饼有自己的评分。 从$B$开始互赠馅饼$x$原创 2020-10-24 18:02:47 · 220 阅读 · 0 评论 -
#区间异或+线段树# [luogu 3870 [TJOI2009]开关] [luogu P2574 XOR的艺术]
TitleP3870 [TJOI2009]开关P2574 XOR的艺术Solution注意换行注意多组数据一定要清空,题目可能会只给一组数据注意第二篇程序中出现的错误主要体现t[p].sum=(r-l+1)-t[p].sum; t[p].add^=1; Code(P3870)#include<cstdio>#include<cstring>#include<string>#include<algorithm>#defi原创 2020-10-14 19:15:08 · 190 阅读 · 1 评论 -
#线段树/二分答案# [luogu2824] [HEOI2016/TJOI2016]排序
TitleP2824 [HEOI2016/TJOI2016]排序Solution一个01序列,如果排序的话,以升序为例,加入当前序列中有cntcntcnt个为111,那么n−cnt+1n-cnt+1n−cnt+1到nnn可以全部赋值为111,然后111到n−cntn-cntn−cnt全部赋值为000,这就可以完成一次排序。注意题目给出的是一个排列。当前位置的数字可以二分答案。二分midmidmid,对于a[i]>=mida[i]>=mida[i]>=mid的都标记为111,反原创 2020-10-09 16:29:01 · 183 阅读 · 2 评论 -
#扫描线+线段树# [ssloj 1459] 空间简单度
TitleSolution[jzoj 6276] 【noip提高组模拟1】树 {扫描线+线段树}Code#include<cstdio>#include<stdlib.h>#include<cmath>#include<algorithm>#define rep(i,x,y) for(register int i=x;i<=y;i++)using namespace std; const int N=300100; struc原创 2020-08-12 08:03:19 · 145 阅读 · 0 评论 -
#树链剖分+线段树#[luogu P3178] [HAOI2015]树上操作
Titlehttps://www.luogu.com.cn/problem/P3178Code#include<cstdio>#define rr register #define ll long long using namespace std; const ll N=100011; const ll M=400011;ll n,m,Summ,R; ll seg[N],rev[M],size[N],son[N],top[N],dep[N]; ll num[N],fat原创 2020-08-09 19:45:35 · 163 阅读 · 0 评论 -
#树链剖分+线段树# [luogu P3384] 【模板】轻重链剖分
Titlehttps://www.luogu.com.cn/problem/P3384Solution改了我好久啊,可能是我太菜了大致思路就是树链剖分后打个懒标记的线段树,在线段树上区间查询,区间加。但是细节这种东西,真的难受,注意一下喽。为了防止seg,rev,topseg,rev,topseg,rev,top等树链剖分中初始值的东西出锅,直接用下面的dfs2dfs2dfs2的做法,直接省去一半的细节了。根据xjqxjqxjq的提醒,和经验告诉我们,线段树通常有两种打法,记住一种就原创 2020-08-07 15:54:59 · 241 阅读 · 1 评论 -
#树链剖分+线段树# [模板] [luoguP2590] [ZJOI2008]树的统计
Titlehttps://www.luogu.com.cn/problem/P2590Solution板子题Code#pragma GCC optimize("Ofast")#pragma GCC optimize("O3")#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>#include<string>#define rr r原创 2020-08-02 21:56:20 · 168 阅读 · 0 评论 -
[jzoj 6310] Global warming {线段树/LIS}
题目Description给定整数 n 和 x,以及一个大小为 n 的序列 a。你可以选择一个区间 [l,r],然后令 a[i]+=d(l<=i<=r),其中 d 满足 |d|<=x。要求最大化 a 的最长上升子序列的长度,并输出该值解题思路反正那个很显然的性质我竟然没有发现,不然我就~~~~。在[l,n][l,n][l,n]这段区间加上xxx,肯定会是最有解。...原创 2019-08-20 17:37:41 · 157 阅读 · 0 评论 -
CF413E Maze 2D {线段树 }
题目https://www.luogu.org/problem/CF413E解题思路我们需要用一颗线段树维护区间的四个值。d1=(L1−L2)d1=(L1-L2)d1=(L1−L2)d2=(L1−R2)d2=(L1-R2)d2=(L1−R2)d3=(L2−R1)d3=(L2-R1)d3=(L2−R1)d4=(L2−R2)d4=(L2-R2)d4=(L2−R2)之后就可以得到区间内...原创 2019-08-15 08:24:24 · 198 阅读 · 0 评论 -
[jzoj 6276] 【noip提高组模拟1】树 {扫描线+线段树}
题目Description有一棵n个节点的无根树,给出其中的m对点对<x,y>。问有多少条树上的简单路径<u,v>满足该路径上不存在任何一对给出的点对<x,y>。这里我们认为路径<u,v>和<v,u>是相同的。并且对于题目中给出的点对<x,y>满足x!=y,对于你要计数的路径<u,v>满足u!=v(即单点不算...原创 2019-08-08 11:23:02 · 274 阅读 · 0 评论 -
涂色
题目Description 有一根长度为1000000000的棍子,一开始涂成白色。 棍子上有刻度,左端点为0,右端点1000000000。 由于某种原因这根棍子的某些部分被重新涂过了。 重新涂的颜色可能是黑色或着白色。 棍子总共被依次重新涂了N(1<=N<=5000)次。 找出最后最长的白色段。 Input 第1行一个数N。 接下来N行表示一次涂色...原创 2018-04-20 21:26:22 · 250 阅读 · 0 评论 -
[jzoj 1495] 宝石 {扫描线+线段树维护+离散化}
题目Description 见上帝动了恻隐之心,天后也想显示一下慈悲之怀,随即从口袋中取出一块魔术方巾,让身边的美神维纳斯拿到后堂的屏风上去试试,屏风是正方形的,高和宽方向上各划有m条鱼屏风的边平行的直线,平行直线间的距离为1厘米。这2m条直线共有m*m个交点,在某些交点上镶嵌着宝石。如果魔术方巾的边与屏风的边平行且魔术方巾触碰到屏风上镶嵌着的宝石,就将与这些宝石等值的金银送给人们。维纳斯想...原创 2018-07-09 19:22:18 · 365 阅读 · 0 评论 -
[jzoj 4273] 【NOIP2015模拟10.28B组】圣章-精灵使的魔法语 {线段树}
题目Description 【背景介绍】 “魔法???算了吧,这种东西我肯定学不了的啦!”明明是个剑士,却被眼前这位洋洋自得的精灵使——弗洛莉拖出去学魔法,真是个没事找茬的家伙…… “没事啦。作为一名冒险者会发生很多情况,中毒啦,受伤啦,被咒语束缚之类的,没有魔法就很难办的呀!”她到是好像一副什么都懂的样子,真是令人火大。 “都说我是个人类了,魔法这种东西学起来很困难的吧!”我只好找个...原创 2018-07-12 22:34:56 · 238 阅读 · 0 评论 -
[luogu SP1716 GSS3] Can you answer these queries III {线段树}
题目https://www.luogu.org/problemnew/show/SP1716解题思路 在线段树上的每个节点上,除了区间端点外,在维护4个信息:区间和sumsumsum,区间最大连续字段和datdatdat,紧靠左端的最大连续字段和lmaxlmaxlmax,紧靠右端的最大连续字段和rmaxrmaxrmax。 在线段树的正常模板下处理一下即可(不过我因为交换打...原创 2018-08-22 19:25:13 · 182 阅读 · 0 评论 -
[luogu 3372][模板]线段树1{线段树or分块}
文章目录题目解题思路代码(SegmentTree)代码(分块)题目https://www.luogu.org/problemnew/show/P3372解题思路一道模板题,温习~~~代码(SegmentTree)#include&lt;cstdio&gt;using namespace std; struct SegmentTree{ int l,r; long long...原创 2018-09-22 18:49:15 · 312 阅读 · 0 评论 -
[jzoj 4231] 寻找神格{线段树+分解因式}
题目Description 淬炼完神体,王仙女被传送到了遥远处一座没有神雷的浮岛上,发现浮岛上除了一扇门以外什么都没有。他来到门前,发现上面写着这样一段话:一个神出了拥有强大的神体外,还需要一枚神格。然而,想要获得神格没那么简单,除了有实力外还需要有运气。曾经有一个人叫金(jin)字(zi)塔(da),他的神体很强,很壮,可是他根本没有运气,所以最后神格拒绝了他。打开这扇门,你将会进入一个神...原创 2019-01-20 17:52:35 · 382 阅读 · 0 评论 -
[洛谷1471] 方差 {线段树}
题目https://www.luogu.org/problemnew/show/P1471解题思路这道题跟[jzoj 4231] 寻找神格{线段树+分解因式}是孪生兄弟。不过需要注意一下change的是实数,ask的是平均数,不是总和。代码#include<cstdio>#define rr register #define db double #define l...原创 2019-01-20 19:41:47 · 259 阅读 · 0 评论 -
[tyvj 1451] 网站计划 {传参线段树}
题目http://www.joyoi.cn/problem/tyvj-1451解题思路线段树模板题目。注意取模时,每一个单项式都要取模。还有要加上快速读入。代码#include<cstdio>#include<algorithm>#include<cstring>#include<string>#define rr regi...原创 2019-03-02 14:58:18 · 161 阅读 · 0 评论 -
[jzoj 3236] 矮人排队 {权值线段树}
题目Description在七山七海之外的一个小村庄,白雪公主与N个矮人住在一起,所有时间都花在吃和玩League of Legend游戏。白雪公主决心终结这样的生活,所以为他们举办了体育课。 在每节课开始时,矮人必须按他们的身高站队。假定矮人们有高度1,2,…,N(每个人高度互不相同)。然而,由于不健康的生活方式,矮人的智力有所恶化,所以他们没有能力依照自己的高度排序。因此,白雪公主发出以...原创 2019-07-11 11:50:43 · 200 阅读 · 0 评论 -
[jzoj 1214] [luogu 4130] [NOI2007]项链工厂 {线段树}
题目https://www.luogu.org/problemnew/show/P4130解题思路代码#include<cstdio>#include<algorithm>#include<cstring>#include<string>#define rep(i,x,y) for(register int i=x;i<=y...原创 2019-07-07 09:10:24 · 218 阅读 · 0 评论 -
2014年初中竞赛试题(南海) 树
题目解题思路 正解:深度优先搜索+树状数组/线段树 歪解:递归+一个类似于线段树的思想代码【歪解】#include&lt;cstdio&gt;using namespace std; int n,m,wt,w[100001],fa[100001],li[100001]; int u,v;//li记录i节点要"加"的值(但并不加,在递归时才带着走)...原创 2018-04-07 16:35:19 · 331 阅读 · 0 评论