![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
线段树
文章平均质量分 50
通信男神杨丽斌
我们不能,不能失去信仰
展开
-
牛客练习赛56D.小翔和泰拉瑞亚(线段树+思维)
题目链接:https://ac.nowcoder.com/acm/contest/3566/D题目大意:给定一个n元素数组,你有m个操作,每次操作可以选择一个区间[li,ri],将这个区间内的数减少vi,你可以选择其中一些进行操作,问你最后可以得到的最大值与最小值的差是多少?思路:因为每个操作是对于区间而言,我们不可能去遍历每个区间,所以需要更好的策略。又因为题中说的是最大值与...原创 2020-01-02 15:55:57 · 249 阅读 · 0 评论 -
牛客练习赛56C.小魂和他的数列(dp+树状数组)
题目大意:给定一个n元素的数列,第i个数为Ai,求这个数列中一共有多少个长度为K的子序列是严格递增的。思路:线段树写多了,看见n这么大,感觉不能开k颗线段树呀,那怎么做呀?都忘了还有树状数组了23333dp(i,j)表示以i元素为结尾的,长度为j的严格递增子序列的个数。那么递推式如下:所以就变成如何快速计算比i小且a[k]比a[i]小的dp(k,j-1)的和了。发现...原创 2020-01-01 00:06:35 · 233 阅读 · 0 评论 -
Codeforces 1269E. K Integers(逆序对,树状数组+二分)
题目链接:http://codeforces.com/contest/1269/problem/ECodeforces 1269E. K Integers题目大意给定一个1到n的排列,定义一个移动操作为:交换相邻的两个元素。现在定义一个函数f(x),表示在原排列中,通过交换操作,形成一个1,2,3....x的排列的子串,需要的最小操作步骤。子串意味着这个排列必须是相邻的。现...原创 2019-12-23 14:17:03 · 679 阅读 · 0 评论 -
[HAOI2015]树上操作
题目描述有一棵点数为 N 的树,以点 1 为根,且树点有边权。然后有 M 个操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a 。 操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a 。 操作 3 :询问某个节点 x 到根的路径中所有点的点权和。 输入格式第一行包含两个整数 N, M 。表示点数和操作数。 接下来一行 N 个整数,表示树中...原创 2019-12-12 16:34:03 · 332 阅读 · 1 评论 -
平面点对问题,切比雪夫距离
题目描述给定平面的n个点(n<=1e5),所有坐标的绝对值在50000以内,现在问你有多少对点之间的距离不小于d。这里距离描述为两点的曼哈顿距离,即dist=|xi-xj|+|yi-yj|。思路如果将平面上小于等于d的曼哈顿距离画出来,会是一个菱形切比雪夫距离:平面上两个点(x1,y1)(x2,y2)的切比雪夫距离为max(∣x1−x2∣,∣y1−y2∣),其中∣...原创 2019-12-03 15:37:23 · 2030 阅读 · 0 评论 -
Codeforce round 600 div2 D.Harmonious Graph (线段树+并查集)
题目链接:https://codeforces.com/contest/1253/problem/D题目大意:给你一个无向图,一个无向图被定义为Harmonious Graph ,必须满足如下条件:对于两个点l,r(l<r),如果l到r有路径,那么对于所有l<m<r的点m,点l到点m都必须有路径。现在你手上有一个无向图,你需要把他变成Harmonious Grap...原创 2019-11-19 16:16:46 · 169 阅读 · 0 评论 -
Codeforce 1257 D Yet Another Monster Killing Problem(二分+线段树)
题目链接:https://codeforces.com/contest/1257/problem/D题目大意:你有m个英雄,有n个怪物,每个怪物有一个能力值p,每个英雄有一个能力值p和一个耐力值e,每天,你都会派一个英雄去打怪,从上次没杀死的怪物开始打,每天你都可以派任意一个英雄去打怪,有以下几种情况:1.英雄的能力值比当前的怪小,那么英雄退出战场,当天结束2.英雄的能力值大于当前...原创 2019-11-16 19:31:47 · 222 阅读 · 0 评论 -
Wannafly挑战赛14D.codeJan和树(dfs+线段树)
链接:https://ac.nowcoder.com/acm/contest/81/D来源:牛客网codeJan和树时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述codeJan有一天脑洞大开,想到一个有趣的问题。给一个固定根为1号结点的树,定义一个子树的beauty是这...原创 2019-11-06 20:53:34 · 143 阅读 · 0 评论 -
Wannafly挑战赛14B.前缀查询(Trie+类线段树操作)
链接:https://ac.nowcoder.com/acm/contest/81/B来源:牛客网前缀查询时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述在一个 Minecraft 村庄中,村长有这一本小写字母构成的名册(字符串的表),每个名字旁边都记录着这位村民的声望...原创 2019-11-05 21:56:39 · 155 阅读 · 0 评论 -
牛客练习赛53补题(D+E)
D.链接:https://ac.nowcoder.com/acm/contest/1114/D来源:牛客网德育分博弈政治课时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 524288K,其他语言1048576K64bit IO Format: %lld题目描述德育分学长最近玩起了骰子。他玩的骰子不同,他的骰子有六面,每面上写着一个 1 到 9 之间的数字,且...原创 2019-10-13 16:46:07 · 198 阅读 · 0 评论 -
2018湖南省赛H.千万别用树套树(线段树+思维)
链接:https://ac.nowcoder.com/acm/contest/1108/H来源:牛客网题目描述Bobo 精通数据结构!他想维护一个线段的集合 S。初始时,S 为空。他会依次进行 q 次操作,操作有 2 种。* 类型 1:给出 l, r,向集合 S 中插入线段 [l, r].* 类型 2:给出 l, r,询问满足 [x,y]∈S[x, y] \in S[x,y]∈S...原创 2019-10-06 21:52:18 · 156 阅读 · 0 评论 -
徐州网络赛G.Coloring String(回文树+主席树)
题目大意:给你一个字符串,你要在字符串中寻找所有的回文串,一个回文串的价值是它包含的不同字符的个数,问你最后所有的回文串的价值总和是多少?思路:首先需要找出所有的回文串,不难想到回文树,用回文树处理字符串后,每个节点的cnt包含对应节点的回文串的个数,我们只需要知道对于每个回文串,他的位置在哪里。这个操作也很常见,可以在回文树中标记每个回文串的终止位置pos,回文树中记录了回文串的...原创 2019-09-10 21:52:31 · 144 阅读 · 0 评论 -
牛客练习赛51F.ABCBA(主席树)
链接:https://ac.nowcoder.com/acm/contest/1083/F来源:牛客网ABCBA时间限制:C/C++ 4秒,其他语言8秒空间限制:C/C++ 51200K,其他语言102400K64bit IO Format: %lld题目描述给出一颗n个结点n-1条边的树,再给出一个长度为n的字符串s,树上的每个点都表示一个字符,点i表示的字符是s[i]...原创 2019-09-10 13:35:14 · 271 阅读 · 0 评论 -
HDU6703.array(权值线段树)
题目描述:给你一个Array{1,2...n}的数列,其中每个元素都是独立的,每个元素大小不大于1e5,长度也不大于1e5,现在有两种操作:(1,pos):将pos位上的元素a[pos]变为a[pos]+1000000;(2,r,k):询问当前数组中,不等于a[1],a[2]....a[r]且不小于k的元素的最小值。思路:因为元素数据范围不大,加上1000000就相当于删除,现...原创 2019-08-27 11:04:23 · 140 阅读 · 0 评论 -
UValive 3938——动态最大连续和——线段树
题目链接:https://vjudge.net/contest/238229#problem/E思路:说实话,千万句题解思路不如几行关键代码,靠大神的代码才让我真正弄懂该怎么做T_T 详见:大佬博客我觉得这题应该注意的地方:1.线段树节点应该保存的东西:最大连续和的起点和终点,可以用pair保存;最大前缀和的终点prer;最大后缀和的起点sufl。那么,我们在构建的时候,从小区...原创 2018-11-05 23:25:49 · 292 阅读 · 0 评论 -
ZOJ-1610 线段树成段染色
题目链接:https://vjudge.net/contest/168122#problem/F给你n次操作,每次操作将【L,R】区间的颜色染色成C,问你最后能看见的颜色有哪些这题和POJ2528很像,不过POJ2528还需要进行离散化操作,可见线段树确实很灵活。这题可以作为区间覆盖的模板题,区间覆盖的处理方法都在代码中了,比较简单,但细节需要注意,我就是push_downWA了好几法...原创 2019-03-18 20:43:46 · 168 阅读 · 0 评论 -
HDU1540——线段树区间合并——求最长连续区间
题目链接:https://vjudge.net/contest/168122#problem/I这是另一种线段树的常见问题,相当于原本有一串长为n的1串,现将其中一些点标记为0或恢复为1,每次询问问你pos所在的最长1连续区间为多长。这种题其实之前见过,就是白书201页的LA3938,一个求动态最大连续和的问题,其实都是区间合并的问题。思路也是类似,每个区间维护最长1前缀长度maxpre,...原创 2019-03-22 21:12:55 · 348 阅读 · 0 评论 -
吉首大学校赛B——干物妹小埋(线段树求最大递增子序列)
链接:https://ac.nowcoder.com/acm/contest/992/B来源:牛客网时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K64bit IO Format: %lld题目描述在之前很火的一个动漫《干物妹小埋》中,大家对小埋打游戏喝可乐的印象十分的深刻。现在欧尼酱将小埋的快乐水全部分开藏在了家具的顶端。...原创 2019-07-15 19:40:04 · 233 阅读 · 0 评论 -
牛客多校训练第二场E——MAZE(DP+线段树)
链接:https://ac.nowcoder.com/acm/contest/882/E来源:牛客网时间限制:C/C++ 5秒,其他语言10秒空间限制:C/C++ 262144K,其他语言524288K64bit IO Format: %lld题目描述Given a maze with N rows and M columns, where bijbij represents...原创 2019-07-23 21:28:13 · 213 阅读 · 0 评论 -
杭电多校第二场HDU6602——Longest Subarray(思维+线段树)
题目链接:https://ac.nowcoder.com/acm/contest/883/F题目描述给你一个1到n的序列,你要找出最长的一个子序列(连续的),满足序列中所有的元素出现的次数要么为0次,要么大于等于k次。思路(这谁看得出来是线段树。。。。摇了我8对于每一个位置i,维护两个东西:last[i]表示i位置这个值上一次出现的位置lastk[i]表示i位置这个值上...原创 2019-07-30 19:54:59 · 220 阅读 · 0 评论 -
杭电多校第三场6609——Find the answer——(权值线段树)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6609题目大意给你一个n个数的序列,一个数m,问你对于每一个数i,你需要在i前面将最少多少个数置为0,才使得从1到i-1的前缀和不大于m思路原本以为直接用两个优先队列,一个大顶堆,保存所有还没有变为0的数;一个小顶堆,保存所有已经变为0的数;但是这样会TLE,因为你有一个出堆进堆的操...原创 2019-08-04 17:31:59 · 92 阅读 · 0 评论 -
牛客多校第四场——sequence(单调栈+线段树)
题目链接:https://ac.nowcoder.com/acm/contest/884/C链接:https://ac.nowcoder.com/acm/contest/884/C来源:牛客网时间限制:C/C++ 3秒,其他语言6秒空间限制:C/C++ 524288K,其他语言1048576K64bit IO Format: %lld题目描述Your are given ...原创 2019-08-07 11:07:54 · 196 阅读 · 0 评论 -
codeforces101B——Buses(线段树或树状数组+离散化)
题目链接:https://codeforces.com/problemset/problem/101/B题目大意:给你很多个公交车的起点和终点,你可以从一个公交车路线上的任何一个点上车,但上车后只能从公交车路线的终点下车,问你从点1到点n有多少种方案。思路对于一个公交车站的终点ti,所有可能的起点为si到ti-1,设dp[i]为到达某个点的方案数,则最终点ti的方案数肯定就是这些可...原创 2019-08-07 20:47:50 · 243 阅读 · 0 评论 -
BZOJ4552.排序
BZOJ4552.排序在2016年,佳媛姐姐喜欢上了数字序列。因而他经常研究关于序列的一些奇奇怪怪的问题,现在他在研究一个难题,需要你来帮助他。这个难题是这样子的:给出一个1到n的全排列,现在对这个全排列序列进行m次局部排序,排序分为两种:1:(0,l,r)表示将区间[l,r]的数字升序排序2:(1,l,r)表示将区间[l,r]的数字降序排序最后询问第q位置上的数字。思路:...原创 2019-08-25 21:32:00 · 166 阅读 · 0 评论 -
杭电多校第10场HDU6701.Make Rounddog Happy(线段树)
题目大意:给定一个长度为N的数组,问有多少个子数组Array[L....R]满足max{Array[L....R]} - (R-L+1) <= K且子数组中的数都不相同思路:这种求满足某种子段区间个数的题目好像都快成套路题了,答案说是RMQ+分治,那不就是线段树吗.....本题用线段树就简介明了很多了。首先,必不可少的就是枚举左端点L,那么我必须知道这个左端点最右端可...原创 2019-08-26 20:50:07 · 168 阅读 · 0 评论 -
2018 icpc徐州站网络赛 H ——Ryuji doesn't want to study ——(线段树)
题目链接:https://nanti.jisuanke.com/t/31460题目思路:很明显的一个线段树题目,但是要求的是a[l]*len+a[l+1]*(len-1)+a[l+2]*(len-2)+......+a[r],所以根据这个推得以下公式:可以试着推一下这个公式。所以我们维护两个线段树,sum1保存正常的数组区间和,sum2保存a[i]*i的数组的区间和,当查询区间为[l,...原创 2018-10-12 18:09:00 · 130 阅读 · 0 评论