![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构(DS)
文章平均质量分 95
juruohjr
人如其名,蒟蒻一枚
展开
-
可持久化的线段树和并查集
1. 可持久化线段树1.1 可持久化概念一个数据结构被认为是可持久化的,当且仅当它满足下面的性质:可以回溯到某个历史版本(包括分支)。可以修改某个历史版本(包括分支)并产生新的分支。不太懂的 dalao\rm{dalao}dalao 们可以联想 git\rm{git}git 的版本控制。(如果没有用过 git\rm{git}git 的话…当我没说)1.2 可持久化数组这个是一切可持久化数据结构的基础。⇒\Rightarrow⇒ 洛谷原题现在有一个长度为 nnn 的序列,依次执行原创 2021-08-15 21:22:45 · 139 阅读 · 0 评论 -
线段树优化建图的速成
前言这个东西比较简单易懂。正文问题引入 ⇒\Rightarrow⇒ CF786B (PLUS)现在有一个 n(1≤n≤105)n(1 \leq n \leq 10^5)n(1≤n≤105) 个节点的有向图,现在给出 m(1≤m≤105)m(1 \leq m \leq 10^5)m(1≤m≤105) 条信息描述这个图的边,信息有三种:给出三个数 u,v,wu,v,wu,v,w,表示连接一条有向边 (u,v)(u,v)(u,v) ,权值为 www。给出四个数 u,l,r,wu, l, r, wu,原创 2021-04-03 20:47:53 · 623 阅读 · 0 评论 -
[题解][LG-P3573][POI2014]RAJ-Pally
设 f(u)f(u)f(u) 表示从节点 uuu 出发的最长路,g(u)g(u)g(u) 表示到 uuu 结束的最长路,这两个 dpdpdp 的转移都比较显然,就不说了。那么经过一条边 (u,v)(u,v)(u,v) 的最长路就是 g(u)+1+f(v)g(u) + 1 + f(v)g(u)+1+f(v)。用 orduord_uordu 表示节点 uuu 的拓扑序。删去了一个节点 uuu 之后,我们将节点按照拓扑序分成两部分 A,BA,BA,B, 其中 AAA 的节点的拓扑序小于 orduord_uo原创 2020-11-30 16:24:07 · 84 阅读 · 0 评论 -
[题解][CF-891C]Envy
⟹\Longrightarrow⟹原题链接有的dalao\mathrm{dalao}dalao说这道题可以用虚树写,但是本人想不到。考虑使用Kruskal\mathrm{Kruskal}Kruskal建立最小生成树的过程,可以发现一个性质:当我们考虑了所有边权≤w\leq w≤w的边,无论我们使用的是哪些边,构成的最小生成森林的连通性一定是一样的。也就是说,对于一个询问中的权值不同的边,可以分开判断。考虑判断一些权值相同(假设为WWW)的边是否可以放到同一颗生成树中。暴力地想,可以给它们还原一个考虑原创 2020-11-27 21:06:57 · 160 阅读 · 0 评论