【线段树】
墓华
这个作者很懒,什么都没留下…
展开
-
POJ-1177 Picture(线段树+扫描线)
链接:POJ-1177 Picture题意给出平面直角坐标系上nnn(0≤n≤50000\le n\le 50000≤n≤5000)个矩形,求所有矩形合并后的所有线段长度之和。分析以计算 水平线段(平行于xxx轴)的长度之和 为例,竖直扫描线(平行于yyy轴)水平扫过 各矩形的 左、右边界;可以发现,每扫过单位水平长度,水平线段长度之和应当增加 当前竖直方向的线段数目∗2*2∗2;...原创 2020-02-12 13:06:55 · 315 阅读 · 0 评论 -
Educational Codeforces Round 81 (Rated for Div. 2) E. Permutation Separation(前缀和,线段树)
链接:Educational Codeforces Round 81 (Rated for Div. 2) E. Permutation Separation题意给出一个111 ~ nnn(2≤n≤2⋅1052\le n\le 2\cdot 10^52≤n≤2⋅105)的排列p1,p2,⋯ ,pnp_1,p_2,\cdots,p_np1,p2,⋯,pn,选择kkk并将序列分为左右两个集合...原创 2020-01-31 11:03:43 · 369 阅读 · 0 评论 -
Gym101630 - A Archery Tournament(线段树)
链接:Gym101630 - A Archery Tournament题意:共nnn个操作:操作1:放置一个圆形靶子,中心在(xi,yi)(x_i,y_i)(xi,yi),其中yi≥0y_i\ge 0yi≥0且靶子一定相切于xxx轴(即半径ri=yir_i=y_iri=yi),不同靶子之间不会有重叠(可能相切);操作2:投掷一个飞镖至(xj,yj)(x_j,y_j)(xj,yj...原创 2019-10-25 13:13:10 · 413 阅读 · 0 评论 -
洛谷 P2146 [NOI2015]软件包管理器(线段树区间更新,树链剖分)
链接:洛谷 P2146 [NOI2015]软件包管理器题意:共有nnn个软件包,编号000 ~ n−1n-1n−1,除000号软件包以外的其他软件包均需要依赖其他软件包才能安装。所以,若要安装一个软件包,除000号软件包外都需要已经安装了其依赖的软件包;若要卸载一个软件包,依赖该软件包的软件包都会被卸载。有q个操作,分为如下222种:install x:表示安装软件包xuninstall...原创 2019-08-16 11:48:05 · 192 阅读 · 0 评论 -
洛谷 P2486 [SDOI2011]染色(线段树区间更新,树链剖分)
链接: 洛谷 P2486 [SDOI2011]染色题目描述输入格式输出格式对于每个询问操作,输出一行答案。输入输出样例输入 #16 52 2 1 2 1 11 21 32 42 52 6Q 3 5C 2 1 1Q 3 5C 5 1 2Q 3 5输出 #1312分析:树上区间操作,首先进行树链剖分。对于每一条链,线段树进行区间维护,对...原创 2019-08-16 11:14:11 · 212 阅读 · 0 评论 -
2019CCPC网络赛 HDU6703 - array(线段树查询时剪枝)
链接:B - array题意:给出nnn个数的数组a1,a2,⋯ ,an  (∀i∈[1,n],1≤ai≤n≤105)a_1,a_2,\cdots,a_n\;(∀i∈[1,n],1≤a_i≤n\le10^5)a1,a2,⋯,an(∀i∈[1,n],1≤ai≤n≤105),其中aaa各不相同。给出m  ...原创 2019-08-25 13:39:10 · 314 阅读 · 0 评论 -
2019多校第九场 HDU6681 Rikka with Cake(欧拉图论定理,线段树)
链接:HDU6681 Rikka with Cake题意:给出一个笛卡尔坐标系中左下角坐标为(0,0)(0,0)(0,0),右上角坐标为(n,m)(n,m)(n,m)的矩形,有K  (≤105)K\;(\le 10^5)K(≤105)条射线,起点在矩形内部,其坐标为(xi,yi)(x_i,y_i)(xi,yi),方向为上/下/左/右(U/D/L/R)U/D/L/...原创 2019-08-20 14:47:09 · 163 阅读 · 0 评论 -
2019多校第六场 HDU6638 Snowy Smile(区间最大子段和)
链接:HDU6638 Snowy Smile题意:给出平面直角坐标系上n(≤2000)n(\le 2000)n(≤2000)个点(xi,yi)(x_i,y_i)(xi,yi),每个点都有一个权值wi  (−109≤xi,yi,wi≤109)w_i\;(-10^9\le x_i,y_i,w_i\le10^9)wi(−109≤xi,yi,wi≤109),选取...原创 2019-08-08 10:08:35 · 1166 阅读 · 0 评论 -
线段树——区间最大子段和问题(SPOJ - GSS1)
问题描述:给定一段长度为nnn的序列a1,a2,…,ana_1,a_2,\dots,a_na1,a2,…,an(aaa有正亦有负),每次 询问[L,R][L,R][L,R](即aLa_LaL~aRa_RaR)范围内的最大字段和,并涉及 单点修改 操作。【线段树】 维护区间最大子段和:①定义:线段树一共要维护444个值,如下:(每个值的含义都是相对于该结点对应区间[l,r][...原创 2019-08-08 09:22:02 · 935 阅读 · 1 评论 -
2019多校第二场 HDU6602 Longest Subarray(思维,线段树区间修改维护最值)
链接:HDU6602 Longest Subarray题意:含有 长度为N的序列 a[1]、a[2]、… 、a[N](其中 1 ≤ a[i] ≤ C )连续子序列 a[L]、a[L+1]、… 、a[R], 对于 1 ~ C的任意一个数,如果出现了,其 出现次数必须 ≥ K(即要求 出现次数 == 0 或 ≥ K)问满足上述条件的最长连续子序列长度为多少?(N,C,K ≤ 105)分析...原创 2019-07-27 14:19:07 · 1225 阅读 · 5 评论 -
2019多校第三场 HDU6606 Distribution of books(二分,权值线段树维护,DP)
链接:HDU6606 Distribution of books题意:将一个长度为n的序列a[1]、a[2]、… 、a[n], 要求取前k段(要求各段连续,但不可交叉,每段元素个数≥1),使得最大的那段和最小,并输出该和。1 <= n <= 2*1051 <= k <= n-109 <= ai <= 109分析:...原创 2019-07-31 09:29:59 · 207 阅读 · 0 评论 -
2019多校第二场 HDU6592 - Beauty Of Unimodal Sequence(贪心,线段树)
链接: HDU6592 - Beauty Of Unimodal Sequence 题意:含有 n 个正整数的序列 a[1]、a[2]、… 、a[n],找出 最长的单峰序列(先严格递增后严格递减,允许仅严格递增或仅严格递减)。要求分别输出所有最长的单峰序列 字典序最小 和 字典序最大 的序列(按其下标排序,输出时也是输出下标)分析:先预处理得到这两个数组:dec[i]:以 a[i] ...原创 2019-07-25 17:44:12 · 397 阅读 · 2 评论 -
2019多校第三场 HDU6609 Find the answer(权值线段树)
链接:HDU6609 Find the answer题意:给出一段长度为n的序列w[1]、w[2]、… 、w[n](1 ≤ w ≤ m),对于任意 i ∈[1, n ],最少 要令多少 w[j] (其中 j ∈[1, i-1])变为0,才能使得∑k=1iw[k]⩽m\sum_{k=1}^{i}w[k]\leqslant mk=1∑iw[k]⩽m分析:对w[i],先求一下前缀和sum,...原创 2019-07-30 17:44:10 · 416 阅读 · 0 评论 -
主席树 —— ③动态区间第K小(树套树,带修改主席树)
动态区间第K小动态区间第K小,又称带修改主席树(动态主席树),对于初学真的不太友好。因为这个和静态区间第K小(静态主席树)数据结构都完全不同了。和求静态第K小一样,我们要得到[L, R]状态的线段树,才能进行二分得到第K小。静态主席树 是一个 可持久化线段树,每次利用 前缀和来计算[L, R]状态,但是前缀和就不便于进行修改操作了,那么对于可修改的区间求和,我们就要用到 树状数组/线段树。...原创 2019-07-29 10:51:12 · 1124 阅读 · 0 评论 -
线段树区间更新模板——懒标记(lazy-tag)的运用
前言在线段树中会遇到区间更新的情况,例如 在区间求和问题中,令[a,b]区间内的值全部加c,若此时再采用单点更新的方法,就会耗费大量时间,这个时候就要用到懒标记来进行区间更新了。懒标记(lazy-tag),又叫做延迟标记,举例说明。设 当前结点对应区间[l, r],待更新区间[a, b] 当 a ≤ l ≤ r ≤ b,即 [l, r]∈[a,b]时,不再向下更新,仅更新当前结...原创 2019-05-11 22:31:43 · 1519 阅读 · 1 评论 -
区间动态查询问题——线段树模板
一、定义线段树是一种二叉搜索树,与区间树相似,它将一个区间划分成一些单元区间,每个单元区间对应线段树中的一个叶结点。线段树的每一个结点都保存一条线段(即一个区间),对于线段树中的每一个非叶子节点[a,b],它的左儿子表示的区间为[a,(a+b)/2],右儿子表示的区间为[(a+b)/2+1,b]。因此线段树是平衡二叉树,最后的子节点数目为N,即整个线段区间的长度。特性:时间复杂度:建...原创 2019-05-03 15:32:56 · 228 阅读 · 0 评论 -
吉首大学2019年程序设计竞赛-B题(线段树)
链接:https://ac.nowcoder.com/acm/contest/992/B来源:牛客网题目描述在之前很火的一个动漫《干物妹小埋》中,大家对小埋打游戏喝可乐的印象十分的深刻。现在欧尼酱将小埋的快乐水全部分开藏在了家具的顶端。小埋使出空中1080°转身接战术翻滚跳到任一家具上,她相信,只要她翻滚的足够快,欧尼酱就跟不上她。1.为获取梦幻开局,小埋一套技能可以使她一开始掉落...原创 2019-07-15 10:00:08 · 474 阅读 · 0 评论 -
牛客小白月赛16 F-小石的妹子(线段树)
链接:https://ac.nowcoder.com/acm/contest/949/F来源:牛客网题目描述小石有 n 个妹子,每个妹子都有一个细心程度 ai 和一个热心程度 bi,小石想给她们一个重要程度 ti(重要程度为 1 表示最重要,重要程度越小表示越重要)。如果一个妹子 i 的细心程度和热心程度都比妹子 j 大,那么妹子 i 的重要程度要大于妹子 j 的重要程度,即妹子 i 比...原创 2019-07-15 09:25:37 · 193 阅读 · 0 评论 -
牛客小白月赛16 H-小阳的贝壳(区间gcd,差分数组,线段树)
链接:https://ac.nowcoder.com/acm/contest/949/H来源:牛客网题目描述小阳手中一共有 n 个贝壳,每个贝壳都有颜色,且初始第 i 个贝壳的颜色为coli 。现在小阳有 3 种操作:1 l r x:给 [l,r] 区间里所有贝壳的颜色值加上 x 。2 l r:询问 [l,r] 区间里所有相邻贝壳 颜色值的差(取绝对值) 的最大值(若 l=r 输出...原创 2019-07-14 11:46:24 · 184 阅读 · 0 评论