随笔分类 - 数据结构_线段树
摘要:线段树优化连边 要求点 x 向区间 [L,R] 连边, 一次的复杂度上限为 O(n) 然后弄成线段树的结构 先父子连边边权为 0 这样连边就只需要连父亲就可以等效于连了区间内每个点 空间复杂度为线段树大小, 一次区间连边时间复杂度为 O(logn) 这是连入边, 连出边的话
阅读全文
摘要:P3932 浮游大陆的68号岛 妖精仓库的储物点可以看做在一个数轴上。每一个储物点会有一些东西,同时他们之间存在距离。 每次他们会选出一个小妖精,然后剩下的人找到区间[l,r]储物点的所有东西,清点完毕之后问她,把这个区间内所有储物点的东西运到另外一个仓库的代价是多少? 比如储物点 i 有 x 个东
阅读全文
摘要:P2680 运输计划 给定一棵树和若干条确定的路径, 你可以将树上一条边权值变为 0 , 求变完以后给定路径的最长长度最短 调试日志: 1. 树剖部分, 对应到点的编号用了对应到线段树上的编号 2. 二分写反了(虽然很快就看到了) 简记: 对应到树上不管什么都用 pos , 对应到点上不管什
阅读全文
摘要:对自己 & RNG : 骄兵必败 lpl加油! P2572 [SCOI2010]序列操作 题目描述 lxhgww最近收到了一个01序列,序列里面包含了n个数,这些数要么是0,要么是1,现在对于这个序列有五种变换操作和询问操作: 0 a b 把[a, b]区间内的所有数全变成0 1 a b 把
阅读全文
摘要:P2787 语文1(chin1) 理理思维 1.获取第x到第y个字符中字母k出现了多少次 2.将第x到第y个字符全部赋值为字母k 3.将第x到第y个字符按照A Z的顺序排序 读字符串我再单个单个读我吃素(shi)好了 Solution 考前练线段树 字母不多, 开26个线段树即可 操作一直接查询 操
阅读全文
摘要:P4644 [Usaco2005 Dec]Cleaning Shifts 清理牛棚 你有一段区间需要被覆盖(长度 include include include include include define LL long long define REP(i, x, y) for(int i = (
阅读全文
摘要:P3924 康娜的线段树 题目描述 小林是个程序媛,不可避免地康娜对这种人类的“魔法”产生了浓厚的兴趣,于是小林开始教她OI。 今天康娜学习了一种叫做线段树的神奇魔法,这种魔法可以维护一段区间的信息,是非常厉害的东西。康娜试着写了一棵维护区间和的线段树。由于她不会打标记,因此所有的区间加操作她都是暴
阅读全文
摘要:P3130 [USACO15DEC]计数haybalesCounting Haybales 1)给定一段连续的田地,给每一个田地都增加一些新的草包。 2)给定一段连续的田地,找出草包最少的田地有多少草包。 3)给定一段连续的田地,统计一共有多少草包。 错误日志: pushdown 时记录懒标记用
阅读全文
摘要:P3097 [USACO13DEC]最优挤奶Optimal Milking 题意简述:给定n个点排成一排,每个点有一个点权,多次改变某个点的点权并将最大点独立集计入答案,输出最终的答案 感谢@zht467 提供翻译 错误日志: 又双叒叕没开long long Solution 考虑线段树维护 只有四
阅读全文
摘要:P4145 上帝造题的七分钟2 / 花神游历各国 题目背景 XLk觉得《上帝造题的七分钟》不太过瘾,于是有了第二部。 题目描述 "第一分钟,X说,要有数列,于是便给定了一个正整数数列。 第二分钟,L说,要能修改,于是便有了对一段数中每个数都开平方(下取整)的操作。 第三分钟,k说,要能查询,于是便有
阅读全文
摘要:CF916E Jamie and Tree 题意翻译 有一棵n个节点的有根树,标号为1 n,你需要维护以下三种操作 1.给定一个点v,将整颗树的根变为v 2.给定两个点u, v,将lca(u, v)所在的子树都加上x 3.给定一个点v,你需要回答以v所在的子树的权值和 Translated by m
阅读全文
摘要:P1558 色板游戏 题目背景 阿宝上学了,今天老师拿来了一块很长的涂色板。 题目描述 色板长度为L,L是一个正整数,所以我们可以均匀地将它划分成L块1厘米长的小方格。并从左到右标记为1, 2, ... L。 现在色板上只有一个颜色,老师告诉阿宝在色板上只能做两件事: "C A B C" 指在A到
阅读全文
摘要:参考了 "皎月半洒花的博客" 看到树想到树剖,由于要取距自己到根离自己最近的标记点,刚开始想到线段树里存节点深度,查询时返回最大值。但是这样的话只能得到节点深度,无法得知节点编号,就想倍增乱搞一下,求出标记点,复杂度O(log3N) 虽然可以过但是实现有点复杂,就看了一下上面的博
阅读全文
摘要:写在前面 对于刚学树剖的同学~~比如我这种 大大大 蒟蒻~~来说,做这题会给你带来很大的提升:不仅可以对树剖有更深刻的理解,还可以更好的理解线段树,所以这是一道好题哦 为了更好懂,我一点一点说说思路吧 思路 首先这题题意不难懂,只有两个操作:区间颜色修改和区间查询颜色数量,我们分开来看: 区间查询颜
阅读全文
摘要:最近请教了一下大佬怎么求序列内第k大查询,自己又捣鼓了一下,虽然还没有懂得 区间 第k大查询,不过姑且做一个记录先吧 因为每个元素大小可能很大而元素之间不连续,所以我们先 离散化处理 一下,程序中的ori[ ]代表原序列,离散化后每个key对应一个值,mem[ ]存的是key对应的值:mem[i]代
阅读全文
摘要:线段树板子 线段树最原始的功能是区间求和 因为是树状结构,使得查询和修改的复杂度都为O(log n)级别 又因为有懒标记的存在,大大降低了复杂度 所以我觉得,树状结构式线段树的基本 懒标记是线段树的灵魂 cpp include using namespace std; define ll long
阅读全文