随笔分类 -  数据结构------>线段树

该文被密码保护。
posted @ 2018-09-24 15:10 悠悠呦~
摘要:<题目链接> 题目大意: 一个长度为n的线段,下面m个操作 D x 表示将单元x毁掉 R 表示修复最后毁坏的那个单元 Q x 询问这个单元以及它周围有多少个连续的单元,如果它本身已经被毁坏了就是0。 解题分析: 用线段树求指定点所在的最长连续区间,属于线段树区间合并类型的题,线段树的每个节点需要维护 阅读全文
posted @ 2018-09-23 21:49 悠悠呦~
摘要:<题目链接> 题目大意: 给定一段序列,现在对指定区间进行两种操作:一是对指定区间进行修改,对其中的每个数字都开根号(开根号后的数字仍然取整);二是对指定区间进行查询,查询这段区间所有数字的和。 解题分析: 本题虽然是区间修改,但是不需要用 lazy标记,因为要对指定区间的每个数进行开根号的处理,也 阅读全文
posted @ 2018-09-23 17:06 悠悠呦~
摘要:<题目链接> 题目大意: 在[0,8000]这个区间内,不断进行一些操作,将其中的一些区间染成特定颜色,如果区间重复的话,后面染的色块会覆盖前面染的色块,问最终[0,8000]这个区间内每种颜色的色块数量是多少。 解题分析: 首先要注意,这是对区间进行更新,。所以update的时候是对输入区间[a, 阅读全文
posted @ 2018-09-22 21:30 悠悠呦~
摘要:<题目链接> 题目大意: 往一堵墙上贴海报,依次输出这些海报张贴的范围,这些海报能够相互覆盖,问最后能够看见几张海报? 解题分析: 由于是给出每张海报的区间,所以在这些区间内的很多点可能用不上,所以我们采用离散化,将这个大的区间映射到一个更小更紧凑的区间。 但是只是这样简单的离散化是错误的, 如三张 阅读全文
posted @ 2018-09-22 16:13 悠悠呦~
摘要:<题目链接> 题目大意: 有一棵点数为 N 的树,以点 1 为根,且树点有权值。然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a 。 操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 a 。 操作 3 :询问某个节点 x 到根的路径中所有点的点权和。 Input 阅读全文
posted @ 2018-09-17 01:55 悠悠呦~
摘要:<题目链接> 题目大意: 给你一段序列,对其进行两种操作,一是修改某个序号的点的值;二是查询某个区间的LCIS(最长上升子序列)。 解题分析: 线段树区间合并的典型例题,用求某个区间的LCIS时,需要比较三个值,一是左区间的LCIS,二是右区间的LCIS,三是左右子区间合并的LCIS。最重要的是第三 阅读全文
posted @ 2018-09-11 23:53 悠悠呦~
摘要:<题目链接> 题目大意: 给定一棵树,该树带有边权,现在对该树进行三种操作: 一:改变指定编号边的边权; 二:对树上指定路径的边权全部取反; 三:查询树上指定路径的最大边权值。 解题分析: 本题虽然只需要查询某段区间的最大值,但是线段树的每个节点都应该有最大和最小值,因为对区间取反之后,这段区间的最 阅读全文
posted @ 2018-09-11 17:05 悠悠呦~
摘要:<题目链接> 题目大意: 给定一棵无向树,这棵树的有边权,这棵树的边的序号完全由输入边的序号决定。给你一个人的起点,进行两次操作: 一:该人从起点走到指定点,问你这段路径的边权总和是多少。 二:对指定序号的边的权值做一些改变。 解题分析: 本题用的是树链剖分,同时用线段树去维护剖分出的树链。并且,本 阅读全文
posted @ 2018-09-10 23:13 悠悠呦~
摘要:<题目链接> 题目大意: 给定一颗带点权的树,进行两种操作,一是给定树上一段路径,对其上每个点的点权增加或者减少一个数,二是对某个编号点的点权进行查询。 解题分析: 树链剖分的模板题,还不会树链剖分可以看这里 >>> 2018-09-09 阅读全文
posted @ 2018-09-09 17:21 悠悠呦~
摘要:<题目链接> 题目大意: 给你n个矩形,求出它们面积的并。 解题分析: 此题主要用到了扫描线的思想,现将各个矩形的横坐标离散化,然后用它们离散化后的横坐标(相当于将矩形的每条竖线投影在x轴上,然后将它们从0~n-1标号),并且利用这些标好的号建线段树,线段树的每个叶子节点表示离散化后的横坐标(比如从 阅读全文
posted @ 2018-07-25 19:23 悠悠呦~
摘要:题目链接:https://vjudge.net/contest/241135#problem/A 题目大意:(与区间修改模板题相同) 输入 每个测试点(输入文件)有且仅有一组测试数据。 每组测试数据的第1行为一个整数N,意义如前文所述。 每组测试数据的第2行为N个整数,分别描述每种商品的重量,其中第 阅读全文
posted @ 2018-07-25 18:47 悠悠呦~
摘要:<题目链接> 题目大意: 一段线段由n条小线段组成,每次操作把一个区间的小线段变成金银铜之一(金的价值为3,银为2,铜为1),最初可当做全为铜;最后求这条线段的总价值。 解题分析: 此题为线段树区间修改的一道模板题,区间修改的重点就是懒惰标记,即线面代码中的 lazy[]数组,因为我们主要想求的是某 阅读全文
posted @ 2018-07-24 22:51 悠悠呦~
摘要:<题目链接> 题目大意: 有一块h*w的矩形广告板,要往上面贴广告,然后给n个1*wi的广告,要求把广告贴上去,而且要求广告要尽量往上贴并且尽量靠左, 求第n个广告的所在的位置,不能贴则为-1。 解题分析: 先抛开本题的数据范围不谈,本题的思路就变的十分简单,无非就是每输入一个纸条的长度,判断一下该 阅读全文
posted @ 2018-07-24 11:09 悠悠呦~
摘要:<题目链接> 题意描述: 给你一个有0--n-1数字组成的序列,然后进行这样的操作,每次将最前面一个元素放到最后面去会得到一个序列,那么这样就形成了n个序列,那么每个序列都有一个逆序数,找出其中最小的一个输出! 解题分析: 先利用线段树求出初始序列的逆序数,这里有一个非常巧妙的地方,由于比a[i]大 阅读全文
posted @ 2018-07-22 21:42 悠悠呦~
摘要:题目链接:https://vjudge.net/contest/182746#problem/B 敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submissio 阅读全文
posted @ 2018-07-20 23:35 悠悠呦~

浏览器标题切换
浏览器标题切换end