随笔分类 -  数据结构

摘要:题目 传送门 题解 方法一、\(\mathcal O(n\sqrt n\log n)\) 考虑到数据范围 \(n\le 100000\),在分块可以接受的范围内,同时,如果我们暴力修改,肯定和点的度有关,那么我们不妨将点的度进行分块: 对于度数小于等于 \(\sqrt n\) 的点,修改的时候暴力改 阅读全文
posted @ 2021-01-02 17:55 Arextre 阅读(84) 评论(0) 推荐(0)
摘要:题目 传送门 题解 算法一 暴力做,枚举 \(A\) 的字串,在 \(B,C\) 中暴力找,时间复杂度 \(\mathcal O(n^4)\). 算法二 同样要在 \(A\) 中枚举字串,但是考虑在 \(L=1\) 时,对于 \(A\) 的每个字符,我们可以在 \(B,C\) 中找出相匹配的,随着 阅读全文
posted @ 2020-12-23 17:35 Arextre 阅读(97) 评论(0) 推荐(0)
摘要:题目 题目背景 有 \(n\) 个城市,标号为 $1$ 到 \(n\),修建道路花费 \(m\) 天,第 \(i\) 天时,若 \((a,b)=m-i+1\),则标号为 \(a\) 的城市和标号为 \(b\) 的城市会建好一条直接相连的道路,有多次询问,每次询问某两座城市最早什么时候能连通。 输入描 阅读全文
posted @ 2020-11-28 16:44 Arextre 阅读(89) 评论(0) 推荐(0)
摘要:题目 传送门 题解 这类题目,不多说可以直接上树剖板子,时间复杂度 \(\mathcal O(n\log ^2n)\),此处不作过多赘述,毕竟重点不是这个方法。 实际上我们有比树剖的俩 \(\log\) 更优的解法,但是还是利用线段树。 分析这道题实际要我们干的事是什么: 能够任意改边的颜色; 询问 阅读全文
posted @ 2020-08-24 11:44 Arextre 阅读(216) 评论(0) 推荐(0)
摘要:题目 传送门 题解 我们需要对一种情况有意识:当 \(b\ge5c\) 时,我们可以直接做,这里不再赘述. 下面我们讨论的是 \(b< 5c\) 的一般情况. 首先,我们将 \(k\) 个数都变成的数称作集合点. 那么,我们应该可以意识到,这个所谓的集合点是 \(v[i]+k\),其中 $0\le 阅读全文
posted @ 2020-07-22 16:51 Arextre 阅读(157) 评论(0) 推荐(0)
摘要:题目 传送门 题解 记总物品数为 \(n\),只能买 \(m\) 个使得两人喜欢的分别至少有 \(k\) 个。 记 \(sz1\) 为两人都喜欢的商品数,\(sz2,sz3\) 分别为 \(A,B\) 各自喜欢的商品数,首先我们可以预处理出来这仨东西: inline bool cmp(const i 阅读全文
posted @ 2020-07-20 08:34 Arextre 阅读(187) 评论(0) 推荐(0)
摘要:题目 原题目-CF712E 传送门 考场题目 HearthStone Description “低保不是挺轻松的吗?” HS 需要智商,需要知己知彼,需要根据场面情况和对手策略进行针对性的概率分析和分类讨论。zzh 不擅长这些,看着hzy 又一次低保,便向 hzy 请教经验。 “每次你与对手博弈,获 阅读全文
posted @ 2020-06-18 22:15 Arextre 阅读(222) 评论(0) 推荐(0)
摘要:题目 传送门 题解 膜拜机房大佬 \(\text{JZM}\) 当场切掉。 $30pts$ 方法 首先,对于 \(n\le 100,1\le l_i\le r_i\le 100\) 的数据,我们显然可以暴力,能打出以下代码便可以得到 $30pts$ 了。 const int MAXN=100; co 阅读全文
posted @ 2020-06-13 14:36 Arextre 阅读(210) 评论(0) 推荐(0)
摘要:题目 传送门 题解 首先,题目中要求我们求的是哪些路径的点积是一个立方数,而每个点的点值都可以被他给定的 \(k\) 个质数组成。 考虑将每个点的点值分解为三进制,第 \(i\) 位表示这个点的点值可以被 \(prime[i]\) 的 \(t\bmod 3\) 次方组成。 至于为什么 \(\bmod 阅读全文
posted @ 2020-06-01 16:45 Arextre 阅读(127) 评论(0) 推荐(0)
摘要:[TOC] 题目 "传送门" 题解 ~~听机房大佬说我们以前做食物链做过,然而我太弱了只知道建虚点~~ 曾经很早以前做过的食物链是这道题的弱化版 ~~所以这道题就不能建虚点了吧~~ 但是我曾经做食物链用的虚点,所以这道题做不来qwq 后来经机房大佬 $\text{SXY}$ 指导,这是一道 关系并查 阅读全文
posted @ 2020-05-20 20:40 Arextre 阅读(151) 评论(0) 推荐(0)
摘要:题目 "传送门" 题解 首先考虑,如果没有操作二,这道题将会是一道并查集板题。 现在我们考虑操作二怎么处理。 操作二难在哪里?难在如果 $p$ 的父亲被修改,那么 $p$ 以下的点将会是错误的根节点关系。 对于每一个修改 $2$,我们将 $p$ 的原点保留,只是将 $p$ 和 $q$ 的根节点信息修 阅读全文
posted @ 2020-05-19 21:45 Arextre 阅读(94) 评论(0) 推荐(0)
摘要:题目 "传送门" 题解 其实此题和一般思路没什么两样,最关键的就是修改的 但是这道题还是有一些是需要注意的细节,比如判断两个点的距离关系时只能这样打 为什么呢?因为我们的修改(就是上面那段代码,还是再粘一遍吧) 规定了方向性,即我们的 $x$ 修改为了对于 $y$ 的距离,那么我们的判断也只能判断 阅读全文
posted @ 2020-05-19 16:38 Arextre 阅读(120) 评论(0) 推荐(0)
摘要:题目 "传送门" 题解 带权并查集板题。 ~~然而我还是不会做~~ 考虑我们输出的东西有三个:根节点编号,并查集大小,换根的次数。 对于前两个,其实就是普通的并查集都可以处理,难点在第三个的处理。 我们想想,换根的次数的实质是什么? 显然,对于节点 $u$,如果他路径压缩一次,其实就代表了他换了一次 阅读全文
posted @ 2020-05-19 16:03 Arextre 阅读(122) 评论(0) 推荐(0)
摘要:[TOC] 题目 "传送门" 题解 下面称 最大值 为异或之后的最大值。 首先,我们可以将询问拆成俩部分: 从 $L\sim R$ 的商店的特殊商品的最大值; 最近 $D$ 天从 $L\sim R$ 的商店的普通商店的最大值; 考虑分别建俩棵树: 第一颗:可持久化 $\text{trie}$ 树,解 阅读全文
posted @ 2020-05-18 22:01 Arextre 阅读(144) 评论(0) 推荐(0)
摘要:题目 "传送门" 题解 首先考虑,如果我们没有这个区间修改怎么做? 只需要用线段树的思想,每个区间维护一个线性基,询问的时候合并线性基即可。 至于如何合并,其实暴力就可以了,具体实现如同: 似乎是十分简单的。 然而,这道题偏偏要给你这个修改。 那么我们考虑如何让这个修改影响尽量方便处理,这个时候我们 阅读全文
posted @ 2020-05-15 11:40 Arextre 阅读(204) 评论(0) 推荐(0)
摘要:题目 "传送门" 题解 似乎是一道线段树分治的板题,但是同时也使用了线性基。 考虑将时间建一棵线段树。 再者,一个区间里面,存在一个 $x$ 和存在 $n$ 个 $x$ 是没有区别的,所以我们只需要处理出一个 $x$ 所存在的最大的一个区间,再在这个时间区间里插入 $x$ 即可,最后用一个 $dfs 阅读全文
posted @ 2020-05-14 15:41 Arextre 阅读(208) 评论(0) 推荐(0)
摘要:变量/函数の定义 变量/函数名 定义/作用 tax[] 将树拍扁时用的临时数组 tail 与 tax[] 配套使用,类似于栈顶指针 son[x][] 点 \(x\) 在树上的左/右儿子 exist[x] 点 \(x\) 存在与否,\(1\) 为存在 val[x] 点 \(x\) 的值 siz[x] 阅读全文
posted @ 2020-03-14 10:56 Arextre 阅读(134) 评论(0) 推荐(0)
摘要:简要说明 对于树链剖分(我更喜欢叫重链剖分),因为它需要定义的东西比较多,对于参数,这里给出一张表格说明 变量名 说明 dep[u] 点 \(u\) 的深度 fa[u] 点 \(u\) 在树上的父节点 dfn[u] 点 \(u\) 的 \(dfs\) 序 siz[u] \(u\) 的子树大小 top 阅读全文
posted @ 2020-02-09 12:28 Arextre 阅读(179) 评论(0) 推荐(0)
摘要:代码说明 对于一些变量进行说明: | 变量名 | 说明 | | : : | : : | | | 树根 | | | 点 $u$ 的父节点,特别地, | | | 点 $u$ 的 左/右儿子 | | | 点 $u$ 及其子树大小 | | | 点 $u$ 对应的值 | | | 点 $u$ 对应的 出现的次数 阅读全文
posted @ 2020-02-09 12:27 Arextre 阅读(164) 评论(0) 推荐(0)
摘要:题目 "点这里" 思路及代码 我们可以使用并查集的按秩合并(但是不要路径压缩)。 两个集合被合并起来,连上的边的权值就设为当前时间。 然后我们可以发现,询问 $j$ 与 $k$ 何时联通,就是查询 $j$ 与 $k$ 在并查集树路径上边权最大值。因为我们按秩合并了,所以树高是 $\log ⁡n$ 的 阅读全文
posted @ 2020-01-20 13:58 Arextre 阅读(130) 评论(0) 推荐(0)