"POJ2892 Tunnel Warfare" "线段树例题解析合集" 题意:有一条相邻节点相连的链(1和2,2和3,...n 1和n相连),有3种操作:1、破坏某一个节点 2、问从某个点可以到的点有多少个,即中间没有被破坏的点(包括自己) 3、重建当前最后一个被破坏的点 建立线段树维护每个点能到 ...
分类:
其他好文 时间:
2019-12-15 00:48:40
阅读次数:
98
"CF920F SUM and REPLACE" "线段树例题解析合集" 和模板的不同之处在于修改时是改为每个数的约数个数,不难发现,当一个数x2的数都要暴力修改,但由于每个数的约数个数下降很快,几次后便降到 using namespace std; define rg register defin ...
分类:
其他好文 时间:
2019-12-15 00:42:31
阅读次数:
77
一, 给定一个区间,求所有区间长度为L的区间的最大值和最小值 二, 该题有很多做法。 自然用的是滑动窗口(单调队列) 可能的做法: O(nlogn)的线段树 O(nlogn)的带删除优先队列(对顶堆) 还能再快一点吗? O(n)-O(1)RMQ代替线段树 三, 单调队列和单调栈的意思一样,始终要你维 ...
分类:
其他好文 时间:
2019-12-14 19:36:17
阅读次数:
140
点分治+线段树(过不去)。 把点分治换成DSU ON THE TREE 应该就能过了。 设S为∏(R[i]-L[i]+1),W[i]为(R[i]-L[i]+1)。 假设有一个点u,则它对答案的贡献为∑(disu + disv) * (S / (W[u] * W[v])),条件为u和v的区间有交。 把 ...
分类:
其他好文 时间:
2019-12-13 23:25:26
阅读次数:
102
Miku 线段是是一种非常重要的数据结构,尤其在暴力时候 线段树我觉得就是一个暴力的暴力的暴力数据结构,支持许多操作,比如说最大值,最小值,区间加,区间和等 线段树的优化关键在于一个懒标记 1 #include<iostream> 2 #include<cstdio> 3 #include<algo ...
分类:
其他好文 时间:
2019-12-13 22:01:30
阅读次数:
72
菜的人就要写简单题 为了练习手速来写这样一道 ~~珂朵莉树~~ 线段树简单题 没啥可说的,注意修改操作中要判一下 ...
分类:
其他好文 时间:
2019-12-12 01:10:00
阅读次数:
97
分块就是乱搞(确信 啥是分块 分块本质就是优雅的暴力,通过预处理和根号平衡(玄学地)让复杂度降低 比如我们考虑一个~~线段树裸~~题: 区间加,区间查询,$n 展开查看 cpp include using namespace std; define int long long inline int ...
分类:
其他好文 时间:
2019-12-11 13:11:06
阅读次数:
98
"Luogu P3258" 题意就是对于一棵树,要求按照给出的顺序对每一个节点进行访问,记录每一个节点被经过的次数;特别地,我们认为只有从一个节点往外走才能被认为是经过一次。(最后一句话非常重要,仔细理解题意) 前置知识:树链剖分,差分。 最开始看到这道题我是打算使用树链剖分+线段树来做的。 但是我 ...
分类:
其他好文 时间:
2019-12-10 22:32:38
阅读次数:
124
题目链接 http://uoj.ac/problem/164 题解 神仙线段树题。 首先赋值操作可以等价于减掉正无穷再加上$x$. 假设某个位置从前到后的操作序列是: $x_1,x_2,...,x_k$ 那么则有: 当前值就是该序列的最大后缀和,历史最大值就是该序列的最大子段和! 然后如果把最大子段 ...
分类:
其他好文 时间:
2019-12-08 11:07:17
阅读次数:
90
A - Binary Tree Traversals 记一个模板 #include<iostream> using namespace std; typedef struct Tree{ Tree *left; Tree *right; int value; }Tree; Tree *root; T ...
分类:
其他好文 时间:
2019-12-08 10:40:35
阅读次数:
64