首页 > 区区区间
头像 MYCui_
发表于 2021-03-01 19:40:52
前言 不难的线段树题,散发着一股浓浓的套路的味道。 题目分析 首先可以知道 ”我们小学二年级就学过的“ 等差序列求和公式(这个真的是小学二年级的 (doge 然后对于本题的操作一进行分析: 不妨假设修改的区间为: 倘若这个区间包含了一个线段树节点 , 这个节点的区间左端点为 , 区间右端点为 展开全文
头像 yu__xuan
发表于 2019-12-21 22:29:41
线段数可以做。线段树是什么?戳 #include<iostream> #include<cstring> #include<string> #include<cstdio> #include<algorithm> #define MAXN 展开全文
头像 阿里嘎多懒羊羊桑_
发表于 2020-08-16 20:44:55
【题型总结】给区间加等差数列求值问题 一、前言: 上一篇题型总结不知道扔哪去了,下午训练看到个很眼熟的题,感觉见过很多次了,就顺手总结下。 需要会的前置知识有:差分与前缀和,树状数组基础,线段树基础 二、UPC 2020年夏混合个人训练第八十场 问题 B: 序列 (二阶差分) 题意: 给定长度为n的 展开全文
头像 熠丶
发表于 2021-03-08 15:23:19
做法:线段树 思路: 看到区间修改区间查询联想到线段树 区间内加上一个首项为k公差为1的等差数列在pushdown操作可以在左子树的lazy为当前结点的lazy,右子树的lazy为当前结点的lazy加上左子树的长度sum利用等差数列求和公式 代码 #include <bits/stdc++ 展开全文
头像 苟且的狮子
发表于 2020-07-25 21:30:46
线段树 题意: 分析: 以前没学线段树时,看一些题解总是会有这句话“这题可以用线段树做,当然不必这么麻烦。。。。。”总会产生兴趣,线段树是什么呀。上了雨神的课终于是清楚了。能够解决复杂问题的线段树也是起于简单的想法的呢。 不说了看着一题,很明显是区间求和问题。那么重点便为我们的lazy标记了!我 展开全文
头像 sunrise__sunrise
发表于 2021-03-01 16:54:59
解题思路 整个题面一看就有着溢出屏幕的线段树的味道。那么任何使用线段树维护区间,我们使用线段树又要维护什么呢?显然对于我们每次的修改,都是存在一定规律的,既公差的等差数列,并且每次求解的都是一段区间的和,那么我们就用标记推迟往下赋值的时间,并且使用记录区间的和,因为给出了首项,项数可以通过的距离求解 展开全文
头像 Eihuvita.
发表于 2021-03-03 10:00:27
题意 这个题目线段树三个字都写在题目上了 就没啥好说的了 就是在普通的修改上加上了一个等差数列 因此我们在用lazy维护的时候 可以给lazy打上首项的值 然后其他的就是一个等差数列 在计算的时候也可以通过来判断等差数列的长度 这样知道首项知道等差数列的长度 就可以维护了 然后求和就是用等差数列求和 展开全文
头像 ☆北极星☆
发表于 2021-03-08 22:40:28
线段树区间覆盖问题,主要难点在于lazy标签要怎么用,我们可以定义lazy标签标示对于根节点now来说,他的整个区间也就是[now.l,now.r]是以now.lazy为首项的等差数列,以及作为区间覆盖的标准的话,那这道题和普通的区间覆盖就没有区别了,当然还有别的做法。 #include<io 展开全文
头像 jzdx(hjh)
发表于 2021-03-04 18:33:43
题号 NC200195名称 区区区间来源 牛客小白月赛20 题目描述 给定一个序列,有两种操作: 1 l r k:将区间[l,r]变成[k,k + 1,...,k + r - l] 的序列 2 l r:将区间求区间[l,r]的区间和 样例 输入 5 5 1 1 1 1 1 2 1 5 1 1 5 1 展开全文
头像 shyyhs
发表于 2021-03-01 22:59:44
思路 只要记录线段树所有区间的一个左端点的值这个题就可以做完..我们可以假设这个左端点是,对于每次修改操作,我们只要知道左端点的值,我们这个区间修改的值就会变得已知,就可以更新,子区间的值也可以更新.总之还是线段树不熟练~. 代码 #include <bits/stdc++.h> usi 展开全文