![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
线段树
线段树
VL——MOESR
ga
展开
-
【2022年11月14日提高A组】 吵架【线段树分治】
线段树分治原创 2022-11-14 19:19:46 · 100 阅读 · 0 评论 -
【2022年10月27日A组】生日【线段树】
线段树原创 2022-10-28 14:28:18 · 66 阅读 · 0 评论 -
【NOIP2022 模拟赛 B 组 Day5】选择人员【线段树】
线段树原创 2022-10-24 18:59:48 · 75 阅读 · 0 评论 -
【2022年10月18日A组】k进制【线段树】
线段树原创 2022-10-19 17:59:13 · 92 阅读 · 0 评论 -
【数据结构训练】区间交
线段树 + 贪心原创 2022-09-28 21:34:05 · 114 阅读 · 0 评论 -
【集训DAY4】矩形【线段树】
线段树原创 2022-08-08 19:50:50 · 82 阅读 · 0 评论 -
【集训DAY9】Maze【线段树】
线段树原创 2022-07-19 20:54:17 · 107 阅读 · 0 评论 -
【Luogu_P4556】 [Vani有约会]雨天的尾巴 /【模板】线段树合并
合并线段树+树上差分原创 2022-07-12 21:42:01 · 122 阅读 · 0 评论 -
【集训DAY1】Dwarves line up【线段树】
线段树原创 2022-07-11 19:48:06 · 75 阅读 · 0 评论 -
【Luogu_P5787 】二分图 /【模板】线段树分治
思路:是一道模板题codecodecode#include<iostream>#include<cstdio>#include<queue>using namespace std;int n, m, ex[1001000], ey[1001000], top, fa[1001000], height[1001000];vector<int> t[1001000];struct node{ int x, y, add;}st[1..原创 2021-08-18 10:49:10 · 66 阅读 · 0 评论 -
2021.07.21【NOIP提高B组】模拟 树的统计
思路:树链剖分模板,推荐博客(https://www.cnblogs.com/chinhhh/p/7965433.html)codecodecode#include<iostream>#include<cstdio>#include<cmath> using namespace std;long long n, m, r, p;long long w[100100], head[100100], tot;long long dep[10010..原创 2021-07-21 20:26:26 · 79 阅读 · 0 评论 -
【YBTOJ】字符串排序
思路:我们不妨设26个线段树表示当前节点上有没有这个字母。然后在做时首先把每个字母在区间的个数选出来然后从小到大(或从大到小)依次插入codecodecode#include<iostream>#include<cstdio>#include<cstring>using namespace std;int n, m;char c[100010];int tmp[27], f[400010];struct node{ int x;}a..原创 2021-06-13 08:32:29 · 122 阅读 · 0 评论 -
【YBTOJ】维护序列
参考线段树2codecodecode#include<iostream>#include<cstdio>using namespace std;long long n , P, m;struct node{ long long l, r, w, flag1, flag2;}a[4001000];void build(long long k, long long l, long long r){ a[k].l=l, a[k].r=r; a[k].fla.原创 2021-06-12 10:47:07 · 89 阅读 · 0 评论 -
【YBTOJ】小白逛公园
思路:我们对线段树每个节点维护几个信息:区间和,区间最大子段和,从左端点开始的最大和and右端点开始的,c1表示父节点,那么c1.sum=a1.sum+b1.sum;c1.lmax=max(a1.lmax, a1.sum+b1.lmax);c1.rmax=max(b1.rmax, b1.sum+a1.rmax);c1.maxx=max(a1.maxx, max(a1.rmax+b1.lmax, b1.maxx));codecodecode#include<iostream>..原创 2021-06-11 21:11:16 · 75 阅读 · 0 评论 -
【YBTOJ】区间查改
思路:线段树模板题codecodecode#include<iostream>#include<cstdio>using namespace std;long long n, m;struct node{ long long l, r, sum, flag;}tree[4001000];void build(long long k, long long l, long long r){ tree[k].l=l, tree[k].r=r; if(..原创 2021-06-03 16:09:26 · 77 阅读 · 0 评论 -
【YBTOJ】求区间和
思路:线段树模板codecodecode#include<iostream>#include<cstdio>using namespace std;long long n, m;struct node{ long long sum;}tree[100100*4];void change(long long k, long long l, long long r, long long x, long long v){ if(l==r&&am..原创 2021-06-02 17:31:27 · 109 阅读 · 0 评论 -
【Luogu_1198】最大数
更好的题目阅读题目描述现在请求你维护一个数列,要求提供以下两种操作:1、 查询操作。语法:Q L功能:查询当前数列中末尾L个数中的最大的数,并输出这个数的值。限制:LL不超过当前数列的长度。(L > 0)2、 插入操作。语法:A n功能:将n加上t,其中t是最近一次查询操作的答案(如果还未执行过查询操作,则t=0,并将所得结果对一个固定的常数D取模,将所得答案插入到数列的末尾。限制:n是整数(可能为负数)并且在长整范围内。注意:初始时数列是空的,没有一个数。原创 2020-08-10 08:57:41 · 114 阅读 · 0 评论 -
【SSL2648】线段树练习五
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-09 20:18:00 · 88 阅读 · 0 评论 -
【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≤10000原创 2020-07-22 10:06:01 · 84 阅读 · 0 评论 -
【SSL2646】线段树练习题3
Description给定一条长度为m的线段,有n个操作,每个操作有3个数字x,y,z表示把区间[x,y]染成颜色z,询问染完色之后,这条长度为m的线段一共有几种颜色。规定:线段的颜色可以相同。连续的相同颜色被视作一段。问x轴被分成多少段。InputOutputSample Input4 20 //四条,总长度为2010 19 12 9 25 13 315 17 4Sample Output7Hint把颜色存进数组里,在查询操作时定义两个变量来记录左子树和右子树的颜原创 2020-07-22 08:57:34 · 96 阅读 · 0 评论 -
【SSL2645】线段树练习题2
Description桌子上零散地放着若干个不同颜色的盒子,桌子的后方是一堵墙。如右图所示。问从桌子前方可以看到多少个盒子?假设人站得足够远(输入时,由底向上,从左到右)。 InputOutputSample Input16 //桌子长度5 // 盒子数量4 712 141 56 1011 16Sample Output4Hint1<=n<=100000,1<=m<=100000,保证坐标范围为[1,n]设-1为多种颜色,0及0以上为原创 2020-07-21 19:11:03 · 85 阅读 · 0 评论 -
【SSL2644】线段树练习题1
Description桌子上零散地放着若干个盒子,桌子的后方是一堵墙。如右图所示。现在从桌子的前方射来一束平行光, 把盒子的影子投射到了墙上。问影子的总宽度是多少? InputOutputSample Input20 //桌面总宽度4 //盒子数量1 5 3 87 1013 19Sample Output15Hint数据范围 1<=n<=100000,1<=m<=100000,保证坐标范围为[1,n].用线段树维护区间值#inc原创 2020-07-21 19:08:51 · 76 阅读 · 0 评论 -
P3373 【模板】线段树 2
更好的题目阅读效果题目描述如题,已知一个数列,你需要进行下面三种操作:将某区间每一个数乘上 xx将某区间每一个数加上 xx求出某区间每一个数的和输入格式第一行包含三个整数 n,m,pn,m,p,分别表示该数列数字的个数、操作的总个数和模数。第二行包含 nn 个用空格分隔的整数,其中第 ii 个数字表示数列第 ii 项的初始值。接下来 mm 行每行包含若干个整数,表示...原创 2020-03-17 20:43:23 · 219 阅读 · 1 评论 -
P3372 【模板】线段树
#include<iostream>using namespace std;long long m,n,ans;struct node{ long long l,r,w,flag;}a[100001<<2];void build(int k,int l,int r){ a[k].l=l;a[k].r=r; if(a[k].l==a[k].r){ cin&...原创 2020-03-02 21:45:50 · 110 阅读 · 0 评论