线段树
文章平均质量分 87
这是简介
小鱼yn
简介
展开
-
CF #669 (Div. 2)D. Discrete Centrifugal Jumps(线段树/单调队列优化dp)
https://codeforces.com/contest/1407/problem/D题意:给定n个高度,当i<ji<ji<j且满足以下条件之一时,可以从iii跳到jjj:问从1到n的最小步数。思路:设dp[j]dp[j]dp[j]表示从1到jjj的最小步数:1、满足条件2的点iii:①要保证iii~jjj内的数严格小于h[j]h[j]h[j],设pos是向左第一个大于等于h[j]h[j]h[j]的数的位置,我们可以在[pos,j−1][pos,j-1][pos,j−1]的原创 2020-10-17 20:41:29 · 156 阅读 · 0 评论 -
牛客小白月赛28—E会当凌绝顶,一览众山小(线段树)
链接:https://ac.nowcoder.com/acm/contest/7412/E来源:牛客网题目描述牛牛最喜欢爬山了,他喜欢站在最高的山峰上展望。牛牛来到山脚下,看到这里一共有 n 个山峰,每个山峰有一个坐标 xix_ixi和高度 hih_ihi(n个山峰在一条直线上),参差不齐,心里瞬间很不舒服。他最喜欢看到的山峰是从左到右高度依次增大,所以牛牛就要使用魔法了。当牛牛登上第 i 个山峰的时候,他要用乾坤大挪移把当前山峰左边(xj<xi)(x_j<x_i)(xj<x原创 2020-09-25 19:31:26 · 259 阅读 · 0 评论 -
CF #668 (Div. 2)E. Fixed Point Removal(线段树)
题意:有n个整数,下标从1~n,当元素的值与其下标值相同时,可将这个元素移除。问:把数列前若干个和后若干个元素变成n+1后,最多可以移除多少个元素。思路:将数值元素a[i]都替换成i-a[i],那么:①当a[i]=0时,就可以将原来下标为i的数移除。②若a[i]>0,那么还需要移走a[i]个前面的数,才能将原来下标为i的数移除。③若a[i]<0,就不能移除这个数。令f[i]表示,1~i中能移除最多元素的个数,那么当f[i-1]>=a[i]时,就可以将原来下标为i的数移除,且f[i]=原创 2020-09-12 13:02:38 · 143 阅读 · 0 评论 -
HDU - 4419 Colourful Rectangle【扫描线.笔记】
题目链接:http://acm.hdu.edu.cn/viewcode.php?rid=32159923题目大意:有n个矩形块,这些矩形块有R, G, B三种不同的颜色,最终区域的颜色由该区域上颜色的种类决定,要求输出 R, G, B, RG, RB, GB, RGB七种颜色的面积是多少。思路:在前面区域覆盖面积的例题里,我们用一维数组维护被覆盖的区间长度,因为这里有颜色之分,所以可以再开一维...原创 2020-01-16 17:02:24 · 203 阅读 · 1 评论 -
扫描线求矩形覆盖面积、体积--入坑总结
扫描线思想:扫描线算法被覆盖1次的区域面积扫描线一个很经典的例题(HDU-1542-Atlantis):在坐标轴上有若干个矩形,问他们覆盖的面积总和。因为他们覆盖的面积有重复,于是就用到了神奇的扫描线算法。扫描线一般就是平行于x轴或者y轴的直线。通过这些直线我们可以把这些矩形覆盖的区域分成若干个子区域分别求面积最后再求和,如下图的区域就被分成了5个子区域。(我是以x轴建的线段树)要求得...原创 2020-01-14 15:59:50 · 2414 阅读 · 0 评论 -
线段树入门到入门到入门
萌新的成长之路1、线段树是什么?百科说:线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。使用线段树可以快速的查找某一个节点在若干条线段中出现的次数,时间复杂度为O(logN)。而未优化的空间复杂度为2N,实际应用时一般还要开4N的数组以免越界,因此有时需...原创 2019-07-28 17:30:47 · 221 阅读 · 1 评论 -
为什么线段树要开4倍空间
从上面也可以看出,如果线段树叶子结点为N个,那么n $\leq$ N那么根据满二叉树的性质,除“最后一层”,的总结点数 $\leq$ 2N-1如果“最后一层”开满的话,“最后一层”节点数 $\leq$ 2N————一共4N-1,所以开4N也一定不会超内存原创 2019-07-28 17:29:47 · 5159 阅读 · 9 评论