
数据结构
文章平均质量分 90
mango114514
有量天尊!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
『题解』Luogu-P3312 [SDOI2014]数表
P3312 [SDOI2014]数表Description多测,QQQ 组数据。有一张 n×mn\times mn×m 的数表,其第 iii 行第 jjj 列(1≤i≤n,1≤j≤m1\le i\le n, 1\le j\le m1≤i≤n,1≤j≤m)的数值为能同时整除 iii 和 jjj 的所有自然数之和。给定 aaa,计算数表中不大于 aaa 的数之和模 2312^{31}231 的值。1≤n,m≤105,1≤Q≤2×104,∣a∣≤1091\le n, m\le 10^5, 1\le Q\原创 2022-02-03 20:37:04 · 437 阅读 · 0 评论 -
『题解』Luogu-P3700 [CQOI2017]小Q的表格
P3700 [CQOI2017]小Q的表格Description有一个无穷多行,无穷多列的表格,行列从 111 开始标号,第 aaa 行 bbb 列有一个整数 f(a,b)f(a, b)f(a,b);f(a,b)f(a, b)f(a,b) 应满足:∀a,b∈N∗,f(a,b)=f(b,a)\forall a, b \in \mathbb{N}^*, f(a, b) = f(b, a)∀a,b∈N∗,f(a,b)=f(b,a);∀a,b∈N∗,b⋅f(a,a+b)=(a+b)⋅f(a,b)\fo原创 2022-02-01 21:48:34 · 727 阅读 · 0 评论 -
『题解』Codeforces-438D The Child and Sequence
D. The Child and SequenceDescription给定数列,区间查询和,区间取模,单点修改。n,m≤105,ai≤109n, m \leq 10^5, a_i\le 10^9n,m≤105,ai≤109。Solution思路与 花神游历各国 很像。假设现在是 x mod px\bmod pxmodp:若 x<px < px<p:不用模;若 x≥px\ge px≥p:设 x=pq+r(0≤r<p)x = pq + r(0\le r <原创 2022-01-25 10:25:27 · 566 阅读 · 0 评论 -
【题解】Luogu-P4774 [NOI2018] 屠龙勇士
与恶龙缠斗过久,自身亦成为恶龙。凝视深渊过久,深渊将回以凝视。 ——尼采《善恶的彼岸》P4774 [NOI2018] 屠龙勇士Description\text{Description}Description玩家需要按照编号 1→n1 \to n1→n 顺序杀掉 nnn 条巨龙,每条巨龙拥有一个初始的生命值 bib_ibi。同时每条巨龙拥有恢复能力,会使它的生命值每次增加 aia_iai,直至生命值非负。游戏开始时玩家拥有 mmm 把剑,每.原创 2021-12-03 19:10:36 · 294 阅读 · 0 评论 -
树剖换根_
P3979 遥远的国度本题需要支持 333 个操作:把根修改为 ididid;将 x yx\;yxy 路径上的所有点权修改为 vvv;询问以 xxx 为根的子树中的最小点权。看到这道题,第一思路就是对于每个操作 111,换根后重新剖一遍。但时间复杂度为 O(qn)\operatorname{O}(qn)O(qn)!直接原地爆炸所以,我们想到另一种方法,直接以 111 为根来剖,记录当前的根,每次修改和查询的时候再根据根的位置回答。对于修改操作,由于一棵树上任意两点间只有一条路径,所以直原创 2021-08-15 11:50:59 · 277 阅读 · 0 评论 -
树链剖分_
树链剖分是把一棵树分割成若干条链,以进行树上操作的一种方法。树链剖分有很多种类,本文主要介绍最常用的重链剖分。重链剖分一、定义一个节点的子节点中子树大小最大的为重子节点,其余节点为轻子节点。特别地,若有多个子节点的子树大小相等,则在其中任选一个作为重子节点,其余为轻子节点。一个节点到其重子节点的边为重边,到轻子节点的边为轻边。假设根节点是轻节点,那么我们从每个轻节点开始一直往下走重边,则每一条路都对应了一条链。二、实现我们 dfs\rm dfsdfs 两次来剖分。dfs1\operato原创 2021-08-14 21:59:26 · 105 阅读 · 0 评论 -
_ST表_
1.什么是 RMQ & ST?RMQ 是一种区间最值查询的问题,我们珂以用线段树或树状数组来解决,但今天我们要用的是——ST表。要注意的是,ST表只珂以用于静态区间求最值,而动态区间就只能用线段树或树状数组了。2.ST 算法思想简述ST 算法使用了 DP 的思想。我们用 f(i,j)f(i,j)f(i,j) 表示以 iii 为起点,连续 2j2^j2j 个数中的最大值。例如 f(3,2)f(3,2)f(3,2) 就表示以 333 为起点,连续 222^222 个数中的最大值,即第 333原创 2021-08-14 21:56:08 · 88 阅读 · 0 评论 -
_树状数组_
1. 什么是树状数组?树状数组是一个查询和修改复杂度都为 O(logn)\operatorname{O}(\log n)O(logn) 的数据结构。看到这句话是不是想到了线段树?是的!但是,凡是可以使用树状数组解决的问题, 使用线段树一定可以解决, 但是线段树能够解决的问题树状数组未必能够解决。哦,那还是用线段树吧……然鹅:线段树的数组需要开 444 倍,树状数组只用 111 倍。树状数组代码量少,线段树写 111 题用树状数组可以写 222 题。真不错!2. low原创 2021-08-13 11:44:38 · 151 阅读 · 0 评论