线段树
zhouyuheng2003
不要害怕落日的黑暗,因为明天的太阳还会照常升起
展开
-
动态开点线段树(多棵线段树)的内存分配与回收
前言线段树,是一个很好用的能支持O(logn)区间操作的数据结构,随着做一些稍微烦一点的题,有时候会发现有些情况要开一个数组的线段树,更有甚者要树套树,而在很多情况下线段树就不能把所有点都开满了(否则会MLE内存超限),于是就出现了线段树的动态开点写法基本思想与普通的线段树相同,动态开点线段树只是一开始每一个节点都没有,insert的时候,如果遇到节点是空的,那么就声明这个点,询问的时候只访问询问的原创 2017-12-22 11:33:50 · 2096 阅读 · 2 评论 -
线段树合并复杂度证明
前言近期对线段树合并有了更深的了解,所以在这里写一下一些自己的想法适用问题线段树合并有一类经典的模板,现在对于一棵有n个叶子节点的树(Tip:对于一棵N个节点的树,其叶子节点数量小于等于⌈N2⌉\lceil \frac N2 \rceil⌈2N⌉),每个叶子节点上都有一个值域为m的值在线段树中,一个非叶子节点节点的线段树由所有子节点的线段树合并而成,求相关的信息代码inline nod...原创 2018-11-26 09:10:41 · 3106 阅读 · 0 评论 -
李超线段树
1 前言之前感觉最近代码能力极其低下啊而自己又在学新的东西于是就有了苦果,代码总是出小错误,调不出来然后就要花很多时间看来还需提升思维缜密性2 前言李超线段树实在mangouyang的博客中看到的,看起来算法非常良心,算法并不是特别难,主要在于其思想它有个经典问题:支持在线,有两种操作第一种操作:在平面中加入一条线段第二种操作:给定aaa,求与x=ax=ax=a直线相交的线...原创 2018-12-10 20:06:01 · 925 阅读 · 0 评论 -
[bzoj5405]platform
前言开始感觉很麻烦,想想其实很清真题目相关题目链接题目大意给一个字符串sss,每一个位置都有一个权值vvv求有多少个子串满足其倒顺序排名等于子串权值和数据范围len≤200000,′a′≤si≤′z′,0≤v≤10000len\le200000,'a'\le s_i\le'z',0\le v\le10000le...原创 2019-01-10 20:27:30 · 203 阅读 · 1 评论 -
[PKUWC2018][loj2537]Minimax
前言大概是线段树合并类板子题题意简介题目链接题目大意给出一棵二叉树,这棵二叉树的每一个叶子节点都有一个权值www(每个叶子节点权值互不相同),每一个非叶子节点都有一个概率pi10000\frac{p_i}{10000}10000pi取儿子节点的的最大值,而有1−pi100001-\frac{p_i}{10000}1−10000pi的概率取儿子节点的最小值,pip_ipi为小于1...原创 2019-01-17 20:39:16 · 476 阅读 · 0 评论 -
动态dp
前言这是今年NOIP前的坑了,当时由于感觉不太会考所以没先学然而NOIP考到了打出GG现在回来补一波题目先拖出模板题,从模板题认识动态dp的一种典型形式洛谷P4719 【模板】动态dp题意:给定一棵n个点的树,点带点权有m次操作,每次操作给定x,y,表示修改点x的权值为y你需要在每次操作之后求出这棵树的最大权独立集的权值大小数据范围:1≤n,m≤1051\le n,m\l...原创 2019-03-22 21:18:59 · 1384 阅读 · 0 评论 -
克鲁斯卡尔重构树
前言水的时候看到的算法正文对于一些问题,比如什么在一幅图从一个点开始经过的边小于等于某个值所能达到的点集中求balabala首先搞出最小生成树(显然只有最小生成树上的边有用)然后从小到大枚举边,把边所连的两个点合并成一个新的点(新的点的权值等于边的权值),新的点继承原来两个点相连的边将所有点合并完后,我们开始建克鲁斯卡尔重构树,这棵树的点就是原图中的点加上新建的点,这棵树的边是每个新建...原创 2019-07-12 10:20:51 · 467 阅读 · 0 评论