线段树
文章平均质量分 69
Dawn_LLLLLLL
这个作者很懒,什么都没留下…
展开
-
洛谷 P3372 线段树 1
今天植树节,来种一棵线段树。传送门题目描述如题,已知一个数列,你需要进行下面两种操作:1.将某区间每一个数加上x2.求出某区间每一个数的和输入输出格式输入格式:第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。第二行包含N个用空格分隔的整数,其中第 i 个数字表示数列第 i 项的初始值。接下来M行每行包含3或4个整数,表示一个操作,具体如下:操作1: 格式:1 x y k 含义:将...原创 2018-03-12 12:56:34 · 486 阅读 · 0 评论 -
洛谷 P3373 线段树 2
作为一道调了三天的模板题,真的太虐心了对于理解线段树大有用处。传送门题目描述如题,已知一个数列,你需要进行下面三种操作:1.将某区间每一个数乘上x2.将某区间每一个数加上x3.求出某区间每一个数的和输入输出格式输入格式:第一行包含三个整数N、M、P,分别表示该数列数字的个数、操作的总个数和模数。第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。接下来M行每行包含3或4个整数,表...原创 2018-03-20 13:59:52 · 412 阅读 · 0 评论 -
洛谷 P1198 [JSOI2008]最大数(线段树)
传送门题目描述现在请求你维护一个数列,要求提供以下两种操作:1、 查询操作。语法:Q L功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值。限制:L不超过当前数列的长度。(L>=0)2、 插入操作。语法:A n功能:将n加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取模,将所得答案插入到数列的末尾。限制:n是整数(可能为负...原创 2018-03-27 13:50:59 · 414 阅读 · 0 评论 -
洛谷 P2590 [ZJOI2008]树的统计(树链剖分)
传送门比较基础的树链剖分吧。。。树链剖分的关键就在把在同一条链上的点的编号连续,这样就可以快速地用线段树维护修改与求值了(当然据说线段数组也可以)。 而我们找链的依据是什么? 这就要提到重链了。 首先我们提出一个概念:重儿子 重儿子就是儿子中他的子节点数最少的一个。#include<cstdio>#include<cstdlib>#inclu...原创 2018-06-28 13:24:00 · 262 阅读 · 0 评论 -
洛谷 P3178 [HAOI2015]树上操作(树链剖分)
传送门裸的树链剖分。。 不会的同学可以戳这。。我觉得可以直接上代码。。 这次并没有动态开点。。 Code:#include<cstdio>#include<cstdlib>#define ll long longstruct node{int y,next;}a[200010];struct tree{int l,r,lc,rc;ll c...原创 2018-06-28 13:34:08 · 235 阅读 · 0 评论 -
洛谷 P3313 [SDOI2014]旅行(树链剖分+线段树)
传送门这题是求固定路径上某固定宗教的评级最大值或和,由于我们知道树上路径是顺着链走的,我们可以用树链剖分使一条链上的编号连续,方便查询。每个宗教建一棵线段树,动态开点,编号按树链剖分后的新编号,维护的是城市评价。 那么改变评级就相当于改变某线段树内的值,改变宗教就相当于换根(移到另一棵线段树内)。求值时按链往上跳,统计答案。Code:#include<cst...原创 2018-07-12 09:31:48 · 249 阅读 · 0 评论