![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树
文章平均质量分 82
JZK-Keven
退役ACMer
展开
-
Codeforces Round #807 (Div. 2)
Codeforces Round #807 (Div. 2)原创 2022-07-16 01:34:30 · 281 阅读 · 0 评论 -
P3369 普通平衡树模板 treap
https://www.luogu.com.cn/problem/P3369treap和bst(二叉查找树)的区别就在于 treap 给了每个节点一个随机的权值,在插入的时候,通过该权值使整棵树依然维持一个大根堆/小根堆的形式(使用左旋和右旋方式来完成),在删除的时候,通过将该点旋转到叶子结点后再删除。代码参考 <算法竞赛进阶指南>//https://www.luogu....原创 2019-12-07 11:30:17 · 169 阅读 · 0 评论 -
P3384 树链剖分模板 点权
https://www.luogu.com.cn/problem/P3384题目描述如题,已知一棵包含N个结点的树(连通且无环),每个节点上包含一个数值,需要支持以下操作:操作1: 格式: 1 x y z 表示将树从x到y结点最短路径上所有节点的值都加上z操作2: 格式: 2 x y 表示求树从x到y结点最短路径上所有节点的值之和操作3: 格式: 3 x z 表示将以x为根节点...原创 2019-12-07 11:21:31 · 163 阅读 · 0 评论 -
ZOJ 1610 Count the Colors (区间染色问题)
【题目链接】Time Limit: 2 Seconds Memory Limit: 65536 KBPainting some colored segments on a line, some previously painted segments may be covered by some the subsequent ones.Your task is counting t...原创 2018-10-09 14:50:33 · 186 阅读 · 0 评论 -
UVA 11235 Frequent values(线段树维护区间最大值)
You are given a sequence of n integers a1, a2, . . . , an in non-decreasing order. In addition to that, youare given several queries consisting of indices i and j (1 ≤ i ≤ j ≤ n). For each query, det...原创 2018-10-10 18:14:16 · 353 阅读 · 0 评论 -
hdu 6315 Naive Operations
多校的原题,蒟蒻来补题了,暑假还不会线段树QAQ题意给n,m两个数字,表示数组大小和操作次数,给一个数组b和一个初始值全部为0的数组a,每次操作add可以在给定的区间(l,r)内让a[i](l=<i<=r)加一,或者query查询区间区间(l,r)中a[i]/b[i](l=<i<=r)(取整)的和。思路很裸的线段树吧,就是操作麻烦了一点,注意70行不能用qu...原创 2018-10-18 12:52:45 · 241 阅读 · 0 评论 -
有关线段树的一些题目
接近一个星期的学习,蒟蒻总算入门线段树了,贴几类常见线段树题目的代码。如有错误,希望大佬指出。hdu 1166 敌兵布阵 题目链接 单点更新求区间和Sample Input1 10 1 2 3 4 5 6 7 8 9 10 Query 1 3 Add 3 6 Query 2 7 Sub 10 2 Add 6 3 Query 3 10 End Sample O...原创 2018-09-02 20:25:32 · 535 阅读 · 0 评论 -
hdu 6638 Snowy Smile 线段树维护最大子段和
一个平面上有 n 个点,每个点有一个对应的权值,其他点的权值都是0,让你选一个矩形,要求矩形内所有点的权值最大。枚举上边界,对于每一行的点,将他依此加入到线段树中,同时更新最大值。时间复杂度大力区间和并,查询的时候还要同时查一下跨左右区间的最大值。#include <bits/stdc++.h>#define lson left,mid,k<<1#def...原创 2019-08-08 09:47:11 · 228 阅读 · 0 评论 -
2019 CCPC 网络赛 部分题解
传送门6702 ^&^签到,注意特判答案为 0 的情况#include <bits/stdc++.h>#define ll long long#define sc scanf#define pr printfusing namespace std;int q[50], w[50];int main(){ int T; sc("%d...原创 2019-08-26 13:29:18 · 858 阅读 · 0 评论 -
2019 ICPC 南京 网络赛
solve : 3/10补题 : 5/10https://www.jisuanke.com/contest/3004?view=challengesA、The beautiful values of the palace开场先开A,开了一眼这曲线不是去年蓝桥杯省赛的题吗,然后随便判了一下(大概15分钟)把值求出来了。然后开始思考用线段树来实现nlogn,,因为 数据范围...原创 2019-09-02 11:13:57 · 279 阅读 · 0 评论 -
hdu 5458 Stability (并查集+线段树+树链剖分(边权))
题意:有一个n个点m条边的图,有q次操作,操作1删掉一条a b之间的边,操作2询问a b之间的必要边,必要边指的是,从a到b必须要经过的边。(题目说明了:在任何情况下,保证整个图的连通)思路:1、如果要直接计算图中两点联通的必要边的话,显然不太可行2、那我们把完成所有操作后的图看成一棵树,和几条边,那么对应的操作就变成了加边和询问3、树上任意两点保证有且只有一条路径,并且如果对于...原创 2019-09-01 11:39:07 · 189 阅读 · 0 评论 -
2019 牛客 多校赛 第十场
slove 4/10rank 297补题 5/10--------------------------------------------------------LinkB、Coffee Chickens[1]=“COFFEE”,S[2]=“CHICKEN",s[i]=s[i-2]+s[i-1],求第 n 个串的第 K - K+10 个字符预处理一下所有小于等于...原创 2019-08-20 15:18:16 · 236 阅读 · 0 评论 -
hdu 4417 Super Mario
题意:有一个长度为 ()的区间,有次询问 () ,每次询问三个数字L,R,H,询问区间 L - R 内有多少个数字小于等于H。离线主席树裸题,把离线查询第K大的板子改改就行。但是,这个题目有点意思。1、询问的 L,R 下标从0开始。所以每次询问先把 L,R 加1。2、大部分主席树的题目的序列都是的排列,所以不需要离散化,但这题比较妙。3、首先一定要离散化,然后考虑离散化...原创 2019-03-11 14:41:14 · 209 阅读 · 0 评论 -
hdu 6278 Just h-index
题意:定义H为 :如果区间内有H个大于等于H的paper,则是h-index给你一个长度为的序列,次询问,每一次询问求区间内最大的H。1、针对每一个区间,二分H,然后每次用主席树找出小于等于H-1的数的数量,然后减一下做判断就可以了。#include <bits/stdc++.h>#define imid int mid=(left+right)/2;us...原创 2019-03-11 21:06:10 · 152 阅读 · 0 评论 -
牛客小白月赛15 部分题解(线段树
E、希望线段树维护区间最小值,计算出数组中小于0的元素删除所需要的代价和删除后对答案的贡献,然后做一次01背包,就是最后可以获得的值。#include <bits/stdc++.h>#define ll long long#define lson left,mid,k<<1#define rson mid+1,right,k<<1|1#def...原创 2019-06-15 18:12:52 · 328 阅读 · 0 评论 -
H、小阳的贝壳
H、小阳的贝克区间增加,区间求差的绝对值的最大值,区间gcd1、,同理,所以维护一个差分数组,求区间和、最大值、最小值、gcd就可以A掉这题。Code:#include <bits/stdc++.h>#define ll long long#define lson left,mid,k<<1#define rson mid+1,right,k<...原创 2019-07-16 16:19:51 · 203 阅读 · 0 评论 -
K、白山茶与红玫瑰
线段树区间翻转,区间找最长连续数字的长度。1、题目要求,区间反转,区间找最长连续1长度。2、首先想到维护以区间左端点开始的最长连续0/1长度,和从区间右端点开始的最长连续1长度,和这个区间的最长连续1长度。3、反转操作的话,似乎需要重新来算每一个点,对于线段树来说,显然是不可以接受的,所以我们在维护1的时候,顺带维护一下0,当这个区间需要反转的话,实际上就是0变成1,1变成0,那么我们...原创 2019-07-17 18:51:56 · 697 阅读 · 0 评论 -
HDU 4553 约会安排
当一个基友来找小明时,小明就根据“首次适应算法”来找一段空闲的时间来和基友约好,如果找到,就说“X,let’s fly”(此处,X为开始时间),否则就说“fly with yourself”; 当女神来找小明时,先使用一次“首次适应算法”,如果没有找到,小明就冒着木叽叽的风险无视所有屌丝基友的约定,再次使用“无视基友首次适应算法”,两次只要有一次找到,就说“X,don’t put my gez...原创 2019-08-14 11:15:11 · 120 阅读 · 0 评论 -
2019 牛客多校 第七场 E、find the median
E、find the medianhttps://ac.nowcoder.com/acm/contest/887/E每次操作把一段连续的数字加入到数组中,每次求输出的中位数。权值线段树维护区间个数,然后加上诡异的离散化。1、首先将左端点,右端点加一,进行离散化,因为这里的询问要求中位数,所以不能和其他线段树题目一样离散化后每个点代表一个点,而是每个点需要代表一段区间。并且在建树的时...原创 2019-08-11 14:14:17 · 201 阅读 · 0 评论 -
2019 牛客 多校赛 第七场
slove 4/11rank 328补题 7/11--------------------------------------------------------linkA、String贪心暴力跑最长符合条件的,签到#include <bits/stdc++.h>using namespace std;char s[205];int str[...原创 2019-08-11 11:39:26 · 270 阅读 · 0 评论 -
POJ 2104 第K小数(不带修主席树模板)
不带修主席树模板这篇博客代码挺好的https://blog.csdn.net/creatorx/article/details/75446472这篇博客图好评https://blog.csdn.net/qq_39809664/article/details/79934516#include <iostream>#include <algorithm>#...原创 2019-03-09 14:15:08 · 161 阅读 · 0 评论