
数据结构——线段树
TS15oi
这个作者很懒,什么都没留下…
展开
-
【线段树】单点修改区间求和
作为一个初学线段树的蒟蒻,赶快来瞻仰一下线段树模板题(一)——单点修改与查询区间和:快速求和计算 【题目描述】 给出n个数(1 < = n < = 100000 ),并且初始化所有数字都为0.接下来m次操作,( 1<= m < = 100000 ) 操作有以下两种:1: C X K 把第X个数的值增加A(A可正可负)2: P X Y 就是询问 第X个...原创 2018-09-22 20:10:14 · 504 阅读 · 0 评论 -
【线段树】区间修改区间求和
蒟蒻在线段树的路上继续前进,lazy的出题人的奇思妙想——延迟标记震撼了他。。线段树模板题(二)——区间修改与查询区间和:区间修改区间求和【题目描述】 如题,已知一个数列,你需要进行下面两种操作:1.将某区间每一个数加上x2.求出某区间每一个数的和【输入】第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。第二行包含N个用空格分隔的整数,其中第i个...原创 2018-09-22 21:21:47 · 810 阅读 · 0 评论 -
【线段树】区间修改区间最大
线段树模板题(三)——区间修改与查询区间最大【题目描述】 如题,已知一个数列,你需要进行下面两种操作:1.将某区间每一个数加上x2.求出某区间的最大值【输入】第一行包含两个整数N、M,分别表示该数列数字的个数和操作的总个数。第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。接下来M行每行包含3或4个整数,表示一个操作,具体如下...原创 2018-12-01 20:42:56 · 1312 阅读 · 0 评论 -
【线段树】区间加乘区间最大
线段树模板题(四)——区间加乘区间最大【题目描述】 如题,已知一个数列,你需要进行下面两种操作:1.将某区间每一个数加上x2.将某区间每一个数乘上x3.求出某区间每一个数的和【输入】第一行包含三个整数N、M、P,分别表示该数列数字的个数、操作的总个数和模数。第二行包含N个用空格分隔的整数,其中第i个数字表示数列第i项的初始值。接下来M行每行包含3或4个整...原创 2018-12-01 21:20:08 · 371 阅读 · 0 评论 -
线段树专题
单点修改区间求和区间修改区间求和区间修改区间最大区间加乘区间最大原创 2018-12-01 21:27:11 · 476 阅读 · 0 评论 -
【欢乐赛】【线段树】做作业
【题目描述】 文翁班上有N(1<=N<=500)N(1<=N<=500)个学生,编号1...N1...N。对于第i个学生他们需要在[Si,Ti][Si,Ti]时间段中做作业,且需要bibi支笔。可能在一个时刻有多个同学在写作业,但是他们不能同时使用一支笔。一个人写完作业后,他的笔就可以给别人用。问,至少需要多少支不同的笔。数据保证所有的si,ti各不同。...原创 2019-01-28 15:39:38 · 170 阅读 · 0 评论 -
【LOJ 6287】诗歌
题面Solution枚举中间点jjj,题目即求是否存在mmm使a[j]−ma[j]-ma[j]−m与a[j]+ma[j]+ma[j]+m分别在jjj两侧。对于jjj左侧任意一个点iii,都将t[a[i]]t[a[i]]t[a[i]]赋值为1,那么若以jjj为中心的lenlenlen最大的字符串不是回文子串,则必然有解。建2棵线段树维护哈希值即可判断回文子串Code#include<bits/stdc++.h>using namespace std;const int N=3e原创 2020-09-09 22:49:40 · 220 阅读 · 0 评论 -
【LOJ 3153】 「JOI Open 2019」三级跳
题面LOJ 3153solution对于任意一对A,BA,BA,B,若区间[A,B][A,B][A,B]中存在一个数权值大于AAA或BBB,则用这个数来替代AAA或BBB显然更优。故只需要考虑每一个区间的最大值与次大值分别作为A,BA,BA,B。可以用单调栈O(n)O(n)O(n)找到每一对这样的A,BA,BA,B。考虑f[i]f[i]f[i]表示以iii作为CCC时最大的A+B+CA+B+CA+B+C,对于每一对A,BA,BA,B,他们对应的CCC一定≥(2∗B−A)\ge (2*B-A)≥原创 2020-09-16 20:13:15 · 509 阅读 · 1 评论