随笔分类 - 数据结构
摘要:T1 给一个有空白字符的串 $S$,和若干模板串 $X_i$,初始 $Ans = 1$,每当一个模板串在 $S$ 中作为子串出现时,$Ans$ 会乘以 $X_i$ 的权值 $Val_i$,然后如果 $S$ 中出现了 $k$ 次模板串(相同串出现两次算两次),贡献就是 $^k \sqrt{Ans}$,
阅读全文
摘要:动态维护树上最小点覆盖 $n \leq 100000$ sol:动态 dp,请 先写一个树上的 dp $f_{(x,0)} = \sum f_{(to,1)}$ $f_{(x,1)} = v_x + \sum f_{(to,0)}$ 首先考虑链上的情形 链上的转移方程非常的清真,它是 $f_{(x,
阅读全文
摘要:管老师的题! T1 给一个序列,多次询问一个区间去重排序后满足每一项是前一项 +1 ,长度为 1,2,...10 的极长子区间个数 $n \leq 10^6$ sol: 正解不懂,考场上莫队打挂,考后发现莫队就过了... 每个数插进去之后在他值域的前面 $10$ 个后面 $10$ 个找一下即可 #p
阅读全文
摘要:由于比较懒,按难度顺序排序 D1T1 给一个序列,求前 $k$ 大区间异或和的和 $n \leq 500000,k \leq min(n^2,200000)$ sol: 超级钢琴 对每个 $i$,维护一个三元组 $(l,r,i)$ 表示左端点在 $[l,r]$,右端点在 $i$ 的区间异或最值,维护
阅读全文
摘要:因为机房里的小伙伴都在看《你的名字。》而我不想看 所以来写了这道题... 给一个 $S$ 串,$q$ 次询问,每次一个 $T$ 串,问 $T$ 有多少没在 $S[l,r]$ 中以子串形式出现过的本质不同的子串 $|S|,q \leq 5e5,\sum |T| \leq 5e5$ sol: 容斥一下就
阅读全文
摘要:一个长度为 $n$ 的序列,$q$ 次询问,给定 $[l,r]$,求最大的 $a \times (a 在 [l,r] 中出现次数)$ $n,q \leq 100000$ sol: 莫队,这道题加入一个数很容易,但不是很好删除一个数,所以我们魔改一下莫队的处理方式 具体地: 1.对于长度小于 $\sq
阅读全文
摘要:咕了半年的 Meaningless Round 终于来了,好评 虽然题目我一道都不会吧 T1 $n$ 个人排成一个环,轮流扔硬币,正面就出局,无论如何都给下一个人继续扔,求每个人留到最后的概率 $mod \space 998244353$,硬币扔到正面的概率是 $\frac{p}{q}$ $n \l
阅读全文
摘要:新技能 get √ :LCT 维护边双连通分量 这题题意就是动态加边,每次求边的两端是否在一个边双连通分量里,输出 "No" 或者边双连通分量的大小 可以用两个并查集分别记录连通性和双连通性,如果还没连通就是 "No" 并在 LCT 上连边,否则直接把这条链 split 出来查即可 注意 LCT 维
阅读全文
摘要:老年选手不会 SAM 也不会 LCT 系列 我的数据结构好菜啊 qnq 一颗 Trie 树,$q$ 次询问,每次可以是: 1.求这棵树上本质不同的子串数量 2.插入一个子树,保证总大小不超过 $100000$ 3.询问一个字符串在 Trie 树上出现过多少次,保证所有询问串总长度不超过 $10000
阅读全文
摘要:定义一个集合的神秘数为不能表示成这个集合的某个子集和的最小正整数,给一个数列,多次求区间神秘数 $n \leq 100000$ sol: 考虑这个神秘数的性质,可以发现,如果神秘数是 $x$,那么 $1 \sim x$ 的所有数都能凑出来 如果每次往集合中加入一个数,如果比 $x$ 大,则神秘数不变
阅读全文
摘要:T1 HNOI2015 实验比较 给 $n$ 个有权值的物品,$m$ 条消息,消息可以是“小于”或者“等于”,一个物品只会与一个小于等于它的东西比较,求最后权值排名方案数 mod 998244353 $n \leq 500$ sol: 考场上自闭了,考出来更自闭 相等的节点缩起来,是一个森林,你要做
阅读全文
摘要:T1 给一棵树,每次求链第 $k$ 小,之后把这条链赋值为 $(ans \times x + y)\space mod \space p$ $n \leq 200000$ sol: 树剖,每条重链维护一个珂朵莉树,暴力就完事了 这题不随机复杂度也是对的,因为每次操作完必推平,相当于每次操作最多增加常
阅读全文
摘要:三道大原题,我就直接写了 T1 scoi2016 背单词 建一个 Trie 树,递推出每个点子树里单词节点的数量,把单词节点拿出来建个树形结构,所有单词节点向他上面最近的单词节点连边,每次贪心往比较小的那边走就可以了 不建树是错的,因为会把不同的单词节点算成一个 例如: 比如左边四个单词节点就被算到
阅读全文
摘要:如你所见,这是一道狗题 一棵树,多次询问与一个点距离至少为 $k$ 的点的权值和 $n,q \leq 2525010$ sol: 长链剖分 需要注意的是这道题卡空间 我把我所有的 vector 换成链表才过了 #include <bits/stdc++.h> #define LL long long
阅读全文
摘要:一棵树,每个点有一个民族,和一个人数,求每个子树里最多的民族及其人数,如果一样,输出编号最小的 $n \leq 500000$ sol: 卡莫队的毒瘤题,需要 dsu on tree 大概就是 dfs 顺便维护一个数组叫“当前答案”,每次先把轻儿子加进来,再把重儿子加进来,然后把轻儿子删掉,重儿子继
阅读全文
摘要:一棵有根树,每个点有一个音高,有 $m$ 中弹奏方法,每种方法可以弹奏 $d$ 子树中音高在 $[l,r]$ 间的音符,每种方法最多弹 $t$ 次 求最多能弹出多少个音符 $n \leq 10000$ sol: 网络流 暴力连边是 1. $S \rightarrow 每个点$ 2. $每个方法 \r
阅读全文
摘要:一棵带边权的树,多次询问 $x$ 到编号为 $[l,r]$ 的点最短距离是多少 $n \leq 100000$ sol: 动态点分治,每层重心维护到所有点的距离 查询的时候在管辖这个点的 log 层线段树里查就可以了 因为这样每一层的答案只会漏而不会错,所以正确性有保障 不会写点分治了...orz
阅读全文
摘要:一棵树,每个点有点权,多次操作 1.单点修改一个点的点权 2.询问有多少棵子树点权异或和为 $k$ $n \leq 30000,k \leq 128,q \leq 30000$ sol: 动态 dp 为防止自己忘,再写一遍 一个点的 dp 值 = $\sum dp_{轻儿子} + dp_{重儿子}$
阅读全文
摘要:树上每个点有颜色,每个颜色有一个关于出现次数的权值,定义一条路径的权值为 $\sum$ 路径上每个点权值 $\times$ 它的颜色在路径上出现次数的权值 给 $q$ 次操作,每次修改一个点的颜色或者询问一条路径的权值 $n \leq 100000$ sol: bzoj 200s 极度酸爽 只被我卡
阅读全文

浙公网安备 33010602011771号