题目链接: "Luogu P4315" 线段树 $+$ 树链剖分 $$\Large\texttt{description}$$ 给定一棵$n$个节点的树,有$n 1$条边相连,给出$u_i~v_i~w_i$ 分别表示 $u_i,v_i$有一条边,边权是$w_i$ 有$3$种操作以及$1$种询问 $\ ...
分类:
其他好文 时间:
2020-01-21 13:32:22
阅读次数:
81
<学习计划> 一、重点学习新算法 1.平衡树splay,动态树LCT 2.(任意模数)NTT 3.莫队算法 4.带修主席树(树状数组套主席树),线段树/树状数组套平衡树 5.后缀数组/后缀自动机 二、刷题,复习、巩固在OJ上打星号的题目 <注意事项> 1.考试时无论题目有多难,都要努力想正解,不要理 ...
分类:
其他好文 时间:
2020-01-21 00:32:52
阅读次数:
92
传送门 不得不说 这真是一道不错的线段树的题目 这一道题的大意就是说 一开始所有的状态均为0 会有m次指令 每一次可以把一个点的状态进行更改 原来是0就变成1 原来是1就变成0 为了锻炼代码能力 我决定还是中规中矩地写线段树 这一道题还规定了一种串 就是0和1间隔交替 (比如010101 101 0 ...
分类:
其他好文 时间:
2020-01-19 19:24:33
阅读次数:
59
主席树又叫可持久化权值线段树,一开始使用来解决第k大的问题,因其发明者黄嘉泰名字的首字母和某人的一样,所以被叫做主席树。 在了解主席树之前,我们先认识一下什么叫做权值线段树。 给你n个数,问你这n个数中第k小的数是哪个。像这种题我们一般都是直接排序然后暴力找,但是我们今天用线段树来试试。 例如a[1 ...
分类:
其他好文 时间:
2020-01-19 19:09:50
阅读次数:
61
建立线段树 void build_tree(int arr[],int tree[],int node,int start,int end){ if(start==end){ tree[node] = arr[start];//叶子节点 } else{ int mid = (start + end) ...
分类:
其他好文 时间:
2020-01-19 00:35:45
阅读次数:
94
Luogu P1923 求第k小的数 一看这题,静态查询区间第$k$小的数,不就是 " 可持久化线段树(主席树) " 的模板题吗?!(误) 直接把主席树的板子打上来?: AC记录: "1.04s" 我知道各位大佬一定有比我更好的方法,欢迎吊打,QAQ!(光速逃) ...
分类:
其他好文 时间:
2020-01-19 00:11:54
阅读次数:
116
线段树,维护6个关系。 注意有可能出现这种情况: 即虽然本身所在块两点时不连通的,但是可以依靠别的块贯通;于是有一些特判。 2020.01.18 ...
分类:
其他好文 时间:
2020-01-18 21:25:46
阅读次数:
63
#include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #define N 1000010 using namespace std; int n,m,a[N]; int mx[N*4],mn[N*4]; vo ...
分类:
其他好文 时间:
2020-01-18 21:21:45
阅读次数:
90
一.线段树的相关定义及用途 (1)线段树的定义 线段树是一种可以加快对区间进行更新以及查询的一种树状结构,类似于将一个区间的及其子区间的相关信息存储在一颗二叉树中。 (2)线段树的用途大致为以下几种 1>某个子区间进行区间更新 2>查询某个子区间的总和 3>查询某个子区间的最值 二.线段树的建立 ( ...
分类:
其他好文 时间:
2020-01-18 16:16:42
阅读次数:
93
这两天学习了主席树,基本上搞懂了主席树是怎么操作的 主席树,是一种可持久化线段树。最简单的操作就是维护静态区间第 $k$ 小 主席树通过维护历史版本,实现查询区间的有关操作 主席树的原理 假设现在有这么一个序列:$4,1,3,5,2$ 问如何求出区间[1,3]内大小为第二的数? ~~利用大眼观察法, ...
分类:
其他好文 时间:
2020-01-18 12:54:00
阅读次数:
69