数据结构---线段树
长沙大学ccsu_deer
这个作者很懒,什么都没留下…
展开
-
2020牛客暑期多校训练营(第二场) H-Happy Triangle(动态开点线段树)
H-Happy Triangle题意:3种操作1、往多重集 插入x2、从多种集合里 删除一个x3、询问多重集和是否有两个值 a、b 使得 a、b、x构成一个合法的三角形。官方题解:做法:对所有的数按序排成一列,当查询一个x时 ,对于合法的a、b (a<b)、a+b>x(两边之和大于第三条边),且取a、b是相邻的时候是最 容易得到解,于是 对 x/2+1 二分找到b的位置,那么大于b的位置 后面的值均满足a+b>x的条件。构成三角形的条件还有一条:任..原创 2020-07-14 18:23:29 · 1722 阅读 · 0 评论 -
牛客算法周周练11 (A模拟,B 分组 染色,C 线段树 区间求和,区间异或 ,D 思维 ,E 思维+差分)
题目链接A-切题之路做法:按照题意 模拟一下就好了,得用longlong#pragma GCC optimize(2)#include<bits/stdc++.h>#define ll long long#define maxn 1005#define inf 1e9#define pb push_back#define rep(i,a,b) for(int i=a;i<=b;i++)#define per(i,a,b) for(int i=a;i>原创 2020-06-17 16:38:50 · 1992 阅读 · 0 评论 -
牛客挑战赛40-E.小V和gcd树(树链剖分+树状数组+动态开点线段树 )
题目链接题意:前言:时间给的有点多,8秒,其实正解1秒足够,8秒导致很多人只用了树链剖分O(1)修改 暴力查询都能过。更好的解法是树上树套树(学习别人代码的)时间复杂度O(Nlog^3N)自己想到的做法是树上动态主席树,发现有点难实现(树状数组维护dfs序,线段树维护权值 )发现不好做,因为树上的节点并不是连续的,树状数组更新的时候dfs序又是连续的,可能会导致左儿子的点更新到右儿子的线段树上面去了。看了别人的代码没想到还可以反过来(树状数组维护权值,线段树维护..原创 2020-05-22 15:29:08 · 568 阅读 · 0 评论 -
厦门大学程序设计大赛月赛(同步赛)( A (分治) D 线段树 区间加,区间乘,区间查询,区间覆盖)
题目链接这题写了我两个小时,在cf延时的15分钟内调出来了,直呼内行D-小C的棋王之路给个节点用k*x+val 表示lazy更新 初始叶子节点k=1 val=a[l] 其他 k=1 val=0一个mul数组,记录每个节点的前面的系数k,val数组记录后面val的值 sum数组记录区间和,因为询问的是区间和每次区间乘了一个k:某个节点记录:mul[id]*=kval[id]*=ksum[id]*=kmul[id]=k*mul[id]%mod;val[...原创 2020-05-18 09:11:31 · 434 阅读 · 0 评论 -
Codeforces Round #271 (Div. 2)(A,B,C(思维+几何),D(dp),E(线段树维护序列F 线段树+主席树)
题目链接挑了一场远古场,没想到战绩还不错,直接五题:A. Keyboard题意:给你一个键盘,但是Mole会打错,要么都往左边打了,要么都往右边打了,现在第一行输入 L或R代表往左和往右,然后一行字符串,代表打出来的字符,让你求原来的字符qwertyuiopasdfghjkl;zxcvbnm,./做法:简单模拟一下就可以了。#include<bits/...原创 2020-03-17 23:14:27 · 1071 阅读 · 0 评论 -
Codeforces Round #624 (Div. 3)(D暴力,E思维+复杂模拟,F线段树)
题目链接D. Three Integers题意:给 a b c 你现在可以对这三个数进行+1 -1 操作 问最少操作后使得 a整除b b整除c做法:暴力枚举 a和b 就可以了,注意范围 容易被hack#include<bits/stdc++.h>#define rep(i,a,b) for(int i=a;i<=(b);++i)#define m...原创 2020-02-25 16:44:00 · 550 阅读 · 0 评论 -
Hello 2020(C(暴力枚举计数题)D(线段树维护最大值 区间相交和不相交问题))
Hello 2020A,B 水题,C. New Year and Permutation题意:给你一个n,问n 的所有排列中有多少个区间是满足下面这个条件:做法:枚举长度,然后统计合法的个数。。长度为1很显然所有的1长度都符合,答案贡献就是:n!*n 排列的总数:n!,每个排列长度:n长度为2:就是1 2,2 3 ,3 4 第一个数为区间最小值,第二个数为区间最大值才...原创 2020-01-09 15:12:42 · 438 阅读 · 0 评论 -
牛客练习赛56(A(水),B(树上路径问题),C(权值树状数组维护子序列),D(枚举加扫描线段树),E(tarjan缩点+求直径))
题目链接A 小蒟和他的乐谱水题,取下模就可以了。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e6+10;int a[N],b[N];int main(){ int n;cin>>n; for(int i=1;i<=n;...原创 2020-01-05 15:34:38 · 383 阅读 · 0 评论 -
Educational Codeforces Round 78 (Rated for Div. 2)(A,B,C,D(另类暴力)E(巧妙dfs))
题目链接本人比较的菜,D题是比赛结束后十分钟才把代码打完~ E,F不会~A. Shuffle HashingA题暴力即可#include<bits/stdc++.h>#define rep(i,a,b) for(int i=a;i<=(b);++i)#define mem(a,x) memset(a,x,sizeof(a))#define pb push...原创 2019-12-20 23:26:24 · 673 阅读 · 0 评论 -
Codeforces Round #603 (Div. 2)(A,B,C(分块),D(连通块),E(线段树维护动态括号匹配))
题目链接A. Sweet ProblemA题是我写的最纠结的,换了四五种做法。。#include<bits/stdc++.h>using namespace std;const int N=10;int a[N];int n;int main(){ int _;cin>>_;while(_--) { n=3; ...原创 2019-12-06 14:32:20 · 329 阅读 · 0 评论 -
Codeforces Round #602 (Div. 2A,B(线段树),C(暴力),D1(暴力),D2(权值线段树))
昨天打牛客的小白惨不忍睹,今天发挥的还是惨不忍睹,但是还行,迟到20分钟写到了D2,但是C没时间写了。。题目链接A 水题一个#include<bits/stdc++.h>#define rep(i,a,b) for(int i=a;i<=(b);++i)#define mem(a,x) memset(a,x,sizeof(a))#define pb push_...原创 2019-11-25 11:12:31 · 328 阅读 · 0 评论 -
G. Performance Review(线段树维护最小值,区间更新)
题目链接题意:有一个公司有n个员工, 每个员工有n个能力值Ai, Randall的能力值为A1, 现在有m轮淘汰,每次会淘汰能力值最小的Ri个,用m轮每轮的Ri替换掉被淘汰的Ri,接着会有Q轮预测, 每次会修改第x轮的第y个元素为z,而且这Q轮修改不是独立的, 问你每轮修改后最终Randall能否留下来。题意稍微难懂简单观察可以知道,维护当前年 比Randall小...原创 2019-11-13 10:24:29 · 358 阅读 · 0 评论 -
C2. Exam in BerSU (hard version)(线段树加二分)Codeforces Round #568 (Div. 2)
time limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputThe only difference between easy and hard versions is constraints.If you writ...原创 2019-09-08 15:12:58 · 1531 阅读 · 0 评论 -
Manthan, Codefest 19 (open for everyone, rated, Div. 1 + Div. 2) D. Restore Permutation(线段树)
time limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputAn array of integersp1,p2,…,pnis called a permutation if it contains each num...原创 2019-08-26 10:21:58 · 617 阅读 · 0 评论 -
(2019年暑假牛客训练第九场)H Cutting Bamboos and J - Symmetrical Painting (主席树、树状数组)
HCutting Bamboos题意:给n个竹子,q次询问,每次l,r,x,y;区间l,人,内将所有竹子砍y次全部砍完,每次从大到小开始砍,每次砍的体积一样。主席树加二分问x次砍的高度是多少。。二分第x次砍的高度的是mid,求剩余的高度与y-x次*(区间和/(r-l+1))作比较即可。。。#include<bits/stdc++.h>using namespac...原创 2019-08-20 15:33:09 · 419 阅读 · 0 评论 -
2019 Multi-University Training Contest 9 Rikka with Cake(离散化做法和动态开点做法)
Rikka with Cake答案线段相交个数加1扫描线求交点个数离散化做法:#include<bits/stdc++.h>#define rep(i,a,b) for(int i=a;i<=(b);++i)#define mem(a,x) memset(a,x,sizeof(a))#define pb push_backusing namespace ...原创 2019-08-19 22:07:07 · 550 阅读 · 0 评论 -
1005 Snowy Smile(求最大连续区间字段和)
hdu 6638 2019多校训练六给n个坐标,每个坐标有个权值(可小于零),问如何取矩形使得矩形内的权值和最大。题解:首先将纵坐标离散化到 O(n) 的范围内,方便后续的处理。 将所有点按照横坐标排序,枚举矩形的上边界,然后往后依次加入每个点,这样就确定了 矩形的上下边界。设 v[y] 表示矩形内部纵坐标为 y 的点的权值和,则答案为 v 的最大子段和, 用线段树维护带修改的最大子段...原创 2019-08-10 10:05:18 · 617 阅读 · 0 评论 -
2019牛客暑期多校训练营(第七场)E 维护区间的线段树
AString暴力做法。。最多的分割方法就是子串前导全是0,后导全是1,接着依次相邻合并看是否合法。。。【代码】#include<bits/stdc++.h>#define rep(i,a,b) for(int i=a;i<=(b);++i)#define mem(a,x) memset(a,x,sizeof(a))#define pb push_back...原创 2019-08-09 10:38:14 · 323 阅读 · 0 评论 -
Mayor's posters(线段树区间覆盖)
Time Limit:1000MS Memory Limit:65536K Total Submissions:87386 Accepted:25076 DescriptionThe citizens of Bytetown, AB, could not stand that the candidates in the mayoral el...原创 2019-08-09 09:23:02 · 292 阅读 · 0 评论 -
2019 杭电暑假多校训练 Distribution of books(线段树+dp)
Time Limit: 8000/8000 MS (Java/Others)Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 411Accepted Submission(s): 135Problem Descriptionzz6d likes reading very much, so ...原创 2019-07-30 11:47:33 · 351 阅读 · 0 评论 -
2019暑假牛客多校训练第四场 sequence(线段树+单调栈)
链接:https://ac.nowcoder.com/acm/contest/884/C来源:牛客网题意很好懂。【做法】从a数组中枚举以当前a[i]为最小值时能左右包括的最大范围,这是单调栈的常用做法了。维护递增的栈就可以了。预处理b的前缀和用线段树维护区间最大值、最小值。准备工作做完后开始求答案,枚举a[i],若a[i]>0 ,那就从i到r[i]区间内找最大的前缀...原创 2019-07-28 10:47:06 · 338 阅读 · 0 评论 -
小阳买水果(线段树维护最大值+树上二分)
【题目链接】链接:https://ac.nowcoder.com/acm/contest/949/D来源:牛客网【题意】给n个数(含负数)连续区间和大于0,区间长度最大【题解】预处理前缀和并插入到线段树里维护最大值。枚举前缀和,然后在当前 前缀和 位置i到n范围上找离i位置最远且大于 当前前缀和 的前缀和。怎么找最远呢?线段树上优先查找右儿子的区间就可以实现了。【代码】...原创 2019-07-22 10:10:21 · 430 阅读 · 0 评论 -
吉首大学2019年程序设计竞赛(重现赛) 干物妹小埋(线段树求最长上升子序列)
链接:https://ac.nowcoder.com/acm/contest/992/B来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K64bit IO Format: %lld题目描述在之前很火的一个动漫《干物妹小埋》中,大家对小埋打游戏喝可乐的印象十分的深刻。现在欧尼酱将小埋的快乐水全部分开藏在了家具的顶端。...原创 2019-07-14 20:31:33 · 434 阅读 · 0 评论 -
牛客小白月赛16 小阳的贝壳(线段树维护差分数组)
链接:https://ac.nowcoder.com/acm/contest/949/H来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 524288K,其他语言1048576K64bit IO Format: %lld题目描述小阳手中一共有 n 个贝壳,每个贝壳都有颜色,且初始第 i 个贝壳的颜色为 colicoli 。现在小阳有 3 种操作:1 ...原创 2019-07-14 09:23:31 · 448 阅读 · 0 评论 -
筱玛爱线段树(两颗线段树懒人 or 差分)
链接:https://ac.nowcoder.com/acm/contest/946/D来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K64bit IO Format: %lld题目描述筱玛是一个热爱线段树的好筱玛。筱玛的爷爷马爷在游戏中被筱玛吊打了,于是他恼羞成怒,决定给筱玛出这样一道数据结构题:给定一个长度为...原创 2019-07-06 10:50:16 · 351 阅读 · 1 评论 -
D. Subarray Sorting
D. Subarray Sortingtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given an arraya1,a2,…,ana1,a2,…,anand an arrayb1,b...原创 2019-07-02 16:40:40 · 953 阅读 · 0 评论 -
J--外挂(线段树维护平方的区间和)
链接:https://ac.nowcoder.com/acm/contest/917/J来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 65536K,其他语言131072K64bit IO Format: %lld题目描述我的就是我的,你也是我的,记住了,狐狸! ...原创 2019-06-15 11:30:20 · 498 阅读 · 0 评论 -
E-希望(线段树加01背包)
链接:https://ac.nowcoder.com/acm/contest/917/E来源:牛客网题目描述水宝宝驾驶着毁灭号接近了勇者号舰桥。他要使用毁灭号的等离子炮摧毁勇者号主控台。但是操控等离子炮的程序出了点问题。等离子炮有n个操作信号,第i个操作信号的强度为b[i]。总体强度为各操作信号的强度之和。由于有些信号太弱了了 (强度<0),水宝宝想把它们删除。但是...原创 2019-06-15 09:16:31 · 473 阅读 · 0 评论 -
华华和月月种树(时间戳加线段树)
链接:https://ac.nowcoder.com/acm/contest/392/H来源:牛客网华华和月月种树时间限制:C/C++ 2秒,其他语言4秒空间限制:C/C++ 131072K,其他语言262144K64bit IO Format: %lld题目描述华华看书了解到,一起玩养成类的游戏有助于两人培养感情。所以他决定和月月一起种一棵树。因为华华现在也是信息学高手...原创 2019-06-04 21:41:53 · 493 阅读 · 0 评论 -
HDU1255覆盖的面积(线段树+扫描线求面积)
给定平面上若干矩形,求出被这些矩形覆盖过至少两次的区域的面积.Input输入数据的第一行是一个正整数T(1<=T<=100),代表测试数据的数量.每个测试数据的第一行是一个正整数N(1<=N<=1000),代表矩形的数量,然后是N行数据,每一行包含四个浮点数,代表平面上的一个矩形的左上角坐标和右下角坐标,矩形的上下边和X轴平行,左右边和Y轴平行.坐标的范...原创 2019-05-08 17:18:25 · 307 阅读 · 0 评论 -
扫描线学习(入门 扫描线+线段树求二维矩形面积)
There are several ancient Greek texts that contain descriptions of the fabled island Atlantis. Some of these texts even include maps of parts of the island. But unfortunately, these maps describe diff...原创 2019-05-08 16:48:48 · 526 阅读 · 0 评论 -
B - Vases and Flowers HDU - 4614 (线段树+二分)
马上就要参加湘潭邀请赛了,今天刷了一套进阶的线段树来复习复习线段树。希望能拿到牌子~~日常专题之进阶线段树专题链接:https://cn.vjudge.net/contest/300370#overviewA题考虑区间乘,有点难,看别人题解,光pushdown就写了近80行代码。先放弃了看B题:Vases and FlowersTime Limit: 4000/2000...原创 2019-05-07 21:28:14 · 378 阅读 · 0 评论 -
E. Vasya and a Tree(树上主席树or树上可持续化线段树)
E. Vasya and a Treetime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputVasya has a tree consisting ofnnvertices with root in verte...原创 2019-04-21 20:02:37 · 439 阅读 · 0 评论 -
2170: 千万别用树套树(线段树求区间和)
2170: 千万别用树套树Submit PageSummaryTime Limit:3 SecMemory Limit:128 MbSubmitted:134Solved:57DescriptionBobo 精通数据结构!他想维护一个线段的集合S。初始时,S为空。他会依次进行q次操作,操作有2种。类型1:给...转载 2019-04-08 17:27:55 · 692 阅读 · 5 评论 -
2167: Grid(2018 年湖南省赛E题 动态开点线段树)
2167: Grid Submit PageSummary Time Limit: 2 Sec Memory Limit: 128 Mb Submitted: 203 Solved: 32DescriptionBobo has n × m points arranged into a matrix with n rows and m co...原创 2019-04-08 16:29:59 · 1178 阅读 · 0 评论 -
免费送气球(权值线段树)
免费送气球Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/65536 K (Java/Others)Total Submission(s): 607Accepted Submission(s): 141Problem Description又到了GDUT一年一度的程序设计竞赛校赛的时间啦。同学们只要...原创 2019-04-02 18:52:50 · 373 阅读 · 2 评论 -
E2. Array and Segments (Hard version)
E2. Array and Segments (Hard version)time limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputThe only difference between easy and hard v...原创 2019-03-30 17:42:25 · 331 阅读 · 0 评论 -
J - J HDU - 5805 (线段树解法)
NanoApe, the Retired Dog, has returned back to prepare for the National Higher Education Entrance Examination!In math class, NanoApe picked up sequences once again. He wrote down a sequence withnn...原创 2019-03-05 20:30:10 · 294 阅读 · 0 评论 -
2019寒假算法基础集训营5 D 题 炫酷划线(线段树解法)
链接:https://ac.nowcoder.com/acm/contest/331/E来源:牛客网 炫酷划线时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 131072K,其他语言262144K64bit IO Format: %lld题目描述平面上有一个圆,圆环上按顺时针顺序分布着从1到n,一共n个点。现在无聊的小希开始按某种顺序对其在圆内两两连线,小希...原创 2019-02-22 09:57:53 · 335 阅读 · 0 评论 -
UVA-11297(二维线段树入门)
https://vjudge.net/problem/UVA-11297题意:给你一个n*n的矩阵,有m个询问,q x1 y1 x2 y2 查询这个子矩阵的最大值和最小值,c x y v是将x,y点的值改成v。二维线段树的模板题:直接贴AC代码#include<cstdio>#include<cstring>#include<algorithm&...原创 2019-02-15 13:11:09 · 486 阅读 · 0 评论