线段树
文章平均质量分 52
ssllyr
锦瑟无端五十弦,一弦一柱思华年。
展开
-
【洛谷P2846】Light Switching G【线段树】
线段树原创 2022-08-21 08:17:20 · 119 阅读 · 0 评论 -
【ybtoj 4.4 线段树课堂过关】【洛谷P4513】C.小白逛公园【维护树】
题目链接:ybtoj、洛谷题目大意求一段序列的最大子段和,并随时在线修改查询。分析对于线段树的每个节点维护几个信息:s,mx,lx,rxs,mx,lx,rxs,mx,lx,rx。分别代表区间和,区间最大子段和,从区间左端点开始的最大子段和,到区间右端点结尾的最大子段和。如果用k表示当前区间,lson,rsonlson,rsonlson,rson表示左右区间,可以得到转移公式:s[k]=s[lson]+s[rson]s[k]=s[lson]+s[rson]s[k]=s[lson]+s[rson..原创 2021-08-10 21:58:47 · 85 阅读 · 0 评论 -
【ybtoj 4.4 线段树课堂过关】B. 区间查改【模板】
线段树原创 2021-08-10 21:42:31 · 116 阅读 · 0 评论 -
【ybtoj 4.4 线段树课堂过关】A. 求区间和【模板】
题目链接:求区间和分析线段树模板单点修改+区间查询。上代码我写的build纯属练手。。#include<iostream>#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;ll n,m,tree[300001];ll ans;void build(int k,int l,int r){ if(l==r) { tree[k]=0;.原创 2021-08-10 21:38:11 · 62 阅读 · 0 评论 -
【洛谷P1198】最大数【线段树】
更好的题目观看题目描述现在请求你维护一个数列,要求提供以下两种操作:1、 查询操作。语法:Q L功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值。限制:LL不超过当前数列的长度。(L > 0)2、 插入操作。语法:A n功能:将n加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0),并将所得结果对一个固定的常数D取模,将所得答案插入到数列的末尾。限制:n是整数(可能为负数)并且在长整范围内。注意:初始时数列是空的,没有一个数。输入格式第一行两原创 2020-08-11 07:43:49 · 272 阅读 · 0 评论 -
【ssl2648】线段树练习题5【线段树变式】
Description一行N个方格,开始每个格子里的数都是0。现在动态地提出一些问题和修改:提问的形式是求某一个特定的子区间[a,b]中所有元素的和;修改的规则是指定某一个格子x,加上或者减去一个特定的值A。现在要求你能对每个提问作出正确的回答。1≤N≤100000,提问和修改的总数可能达到100000条。Input20 //方格个数 6 //有几组操作 M 1 1 //表示修改,第一个表示格子位置,第二个数表示在原来的基础上加上的数, M 2 2 M 3 4 M 3 -5 M 6 7原创 2020-08-10 10:51:21 · 130 阅读 · 1 评论 -
【ssl2647】【线段树练习题4】【线段树变式】
Description在平面内有一条长度为n的线段(不计入答案),可以对进行以下2种操作:1、把从x到y的再加一条线段2、查询从x到x+1有多少条线段Input第一行输入n,m第2~m+1行,每行2个数x,y,表示从x到y再加一条线段最后一行输入2个数,为x和x+1,查询x到x+1的线段数目Output输出x到x+1的线段数目Sample Input7 22 53 64 5Sample Output2Hint【数据规模】100%满足1≤n≤100000,1≤x≤y≤原创 2020-08-09 20:39:23 · 131 阅读 · 0 评论 -
【ssl2646】【线段树练习题3】【线段树变式】
Description给定一条长度为m的线段,有n个操作,每个操作有3个数字x,y,z表示把区间[x,y]染成颜色z,询问染完色之后,这条长度为m的线段一共有几种颜色。规定:线段的颜色可以相同。连续的相同颜色被视作一段。问x轴被分成多少段。Sample Input20 //四条,总长度为2010 19 12 9 25 13 315 17 4Sample Output7Hint数据规模N <= 10000M <= 1000000分析同样是线段树的模板题(稍原创 2020-08-09 20:23:20 · 107 阅读 · 0 评论 -
【ssl2645】【线段树练习题2】【线段树变式】
Description桌子上零散地放着若干个不同颜色的盒子,桌子的后方是一堵墙。如右图所示。问从桌子前方可以看到多少个盒子?假设人站得足够远(输入时,由底向上,从左到右)。Sample Input16 //桌子长度5 // 盒子数量4 712 141 56 1011 16Sample Output4Hint1<=n<=100000,1<=m<=100000,保证坐标范围为[1,n].分析可以这样来看这道题:x轴上有若干条不同线段,将它们依次染上原创 2020-08-09 19:44:20 · 119 阅读 · 0 评论 -
【ssl2644】【线段树练习题1】【线段树模板】
Description桌子上零散地放着若干个盒子,桌子的后方是一堵墙。如右图所示。现在从桌子的前方射来一束平行光, 把盒子的影子投射到了墙上。问影子的总宽度是多少?Sample Input20 //桌面总宽度4 //盒子数量1 5 3 87 1013 19Sample Output15Hint数据范围1<=n<=100000,1<=m<=100000,保证坐标范围为[1,n].分析这题算是一个线段树的模板题。核心思想就是覆盖和查找。线段树原创 2020-08-09 19:20:07 · 112 阅读 · 0 评论