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

摘要:洛谷题目链接: "楼房重建" 题目描述 小A的楼房外有一大片施工工地,工地上有N栋待建的楼房。每天,这片工地上的房子拆了又建、建了又拆。他经常无聊地看着窗外发呆,数自己能够看到多少栋房子。 为了简化问题,我们考虑这些事件发生在一个二维平面上。小A在平面上(0,0)点的位置,第i栋楼房可以用一条连接( 阅读全文
posted @ 2019-03-03 20:43 Brave_Cattle 阅读(292) 评论(0) 推荐(0)
摘要:洛谷题目链接: "[USACO5.5]矩形周长Picture" 题目背景 墙上贴着许多形状相同的海报、照片。它们的边都是水平和垂直的。每个矩形图片可能部分或全部的覆盖了其他图片。所有矩形合并后的边长称为周长。 题目描述 编写一个程序计算周长。 如图1所示7个矩形。 如图2所示,所有矩形的边界。所有矩 阅读全文
posted @ 2019-02-24 21:24 Brave_Cattle 阅读(408) 评论(0) 推荐(0)
摘要:洛谷题目链接: "[ZJOI2013]K大数查询" 题目描述 有N个位置,M个操作。操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c如果是2 a b c形式,表示询问从第a个位置到第b个位置,第C大的数是多少。 输入输出格式 输入格式: 第一行N,M接 阅读全文
posted @ 2018-09-10 20:08 Brave_Cattle 阅读(398) 评论(0) 推荐(0)
摘要:洛谷题目链接: "[AHOI2009]维护序列" 题目描述 老师交给小可可一个维护数列的任务,现在小可可希望你来帮他完成。 有长为N的数列,不妨设为a1,a2,…,aN 。有如下三种操作形式: (1)把数列中的一段数全部乘一个值; (2)把数列中的一段数全部加一个值; (3)询问数列中的一段数的和, 阅读全文
posted @ 2018-06-12 15:03 Brave_Cattle 阅读(233) 评论(0) 推荐(0)
摘要:洛谷题目链接: " 最大子段和 " 什么是最大子段和?顾名思义,在一个序列中,找到一段,将这一段元素相加使得结果最大. 其实可以通过递推来在O(n)的时间复杂度内求出结果,也就是判断一个数前面一个数能否对最大子段和作贡献.如果前面那个数>0,那么就将它加到这一个数里,每次正在操作的数进行取max.但 阅读全文
posted @ 2018-05-17 19:28 Brave_Cattle 阅读(290) 评论(0) 推荐(0)
摘要:洛谷题目链接: "无聊的数列" 题目背景 无聊的YYB总喜欢搞出一些正常人无法搞出的东西。有一天,无聊的YYB想出了一道无聊的题:无聊的数列。。。(K峰:这题不是傻X题吗) 题目描述 维护一个数列{a[i]},支持两种操作: 1、1 L R K D:给出一个长度等于R L+1的等差数列,首项为K,公 阅读全文
posted @ 2018-04-17 16:39 Brave_Cattle 阅读(217) 评论(0) 推荐(0)
摘要:洛谷题目链接:线段树 线段树是一种用于区间修改查询的数据结构,可以支持的操作有单点修改区间查询,区间修改单点查询,区间修改区间查询等. 线段树有递归版和结构体版,递归版在处理一开始没有赋初始值的问题时可以不用建树,而结构体版的则显得比较条理清晰. 线段树比树状数组的代码复杂的多,但是树状数组多支持一 阅读全文
posted @ 2017-12-30 11:43 Brave_Cattle 阅读(2851) 评论(0) 推荐(2)