- 博客(7)
- 收藏
- 关注
原创 线段树例题
但是,如果我们使用懒标记。如果[x,y]完全覆盖结点区间[a,b]可以先修改这个区间的dat值,然后打上一个懒标记,立即返回,暂时不修改子节点的值,懒标记可以理解为记账本,父结点先欠下面的子节点一些帐,后面在还上。我们是不是需要把这个结点下面的所有叶子结点都加k,然后在更新父节点。如果要覆盖所有的叶子结点,这样的 方法是O(n)的。还是这个图,如果要更改一个区间,把这个区间的所有数都加k,假如我们要把5-7全部加k。昨天出去玩了,忘记给大家发代码了,今天给大家发一些线段树例题的代码和讲解。
2025-08-09 08:31:29
411
原创 c++线段树基础
本人已经大概半年没有正儿八经的学c++了,今天翻了翻以前的题,居然发现不会写线段树了,于是就上网搜视频,但是多多少少还是有点蒙,所以写一篇文章来巩固一下思路,也请各位大佬指点指点,也希望这篇文章可以帮到那些和我一样的刚学线段树的新手。线段树把一个区间(长度大于1)分成左右两个区间递归求解,把线段变成一个树形结构。叶子节点存储本身的值,非叶子节点存储区间的值。一般来说线段树是用来维护区间信息的数据结构,采用的是分治思想,线段树可以在 O(logn)如图,这是构建好的线段树。不多BB了,正文开始。
2025-08-07 09:41:01
189
原创 DP练习题(二)
两种传球方法被视作不同的方法,当且仅当这两种方法中,接到球的同学按接球顺序组成的序列是不同的。比如有三个同学 1 号、2 号、3 号,并假设小蛮为 1 号,球传了 33 次回到小蛮手里的方式有 1->2->3->1 和 1->3->2->1,共 22 种。游戏规则是这样的:𝑛 个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球,每个同学可以把球传给自己左右的两个同学中的一个(左右任意),当老师再次吹哨子时,传球停止,此时,拿着球没有传出去的那个同学就是败者,要给大家表演一个节目。
2024-08-12 08:58:22
979
原创 DP练习题(一)
今天讲一道c++的动态规划的题目有 𝑛 堆石子排成一排,第 𝑖 堆石子有 𝑎𝑖 颗,每次我们可以选择相邻的两堆石子合并,代价是两堆石子数目的和,现在我们要一直合并这些石子,使得最后只剩下一堆石子,问总代价最少是多少?
2024-08-11 20:01:27
908
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅