随笔分类 - 数据结构
摘要:「JOISC 2020 Day3」星座 3 (dp) 考虑根据$A_i$的值建立笛卡尔树,此时平面被划分为个矩形空间 下称选择一个点为保留一个星星 具体的,对于笛卡尔树上的节点$(u,l,r)$,它的矩形就是父节点矩形以下,且满足$x\in[l,r],y>A_u$的部分 可以用一个线段树来查询矩形内
阅读全文
摘要:「BalticOI 2020」小丑 Analysis 问题即考虑加入一个边集,判断是否是二分图 容易想到用带权并查集/LCT 之类的结构维护 考虑对于每个左端点/右端点 维护最长的有解区间$R_i/L_i$ $L_i,R_i$显然具有单调性 就可以$O(1)$完成查询 下文认为$n,m$同阶 Sol
阅读全文
摘要:k短路 好像是一个比较简单的东西 对于 正权有向图,\(\displaystyle G=(V,E),V=\{V_i\}_{i=1}^nE=\{(u_i,v_i,w_i)\}_{i=1}^m\) 求$s$到$t$的前$k$短路 考虑建立反图$G'=(V,E')\(,容易\)\text$求得$t$的单源
阅读全文
摘要:「NOI2020」时代的眼泪 前言 这种东西看到就给人一种 分块分块分块分块分块分块! 啊啊啊啊啊啊啊啊啊啊啊 $$\ $$ 问题分析 这是一个二维区间顺序对问题,对于普通的区间顺序对问题,我们有简单分块解法 预处理整块的答案,有$n\sqrt n$个数要插入预处理,也就是有$O(\sqrt n)$
阅读全文
摘要:「CCO 2020」千山万壑 性质推演 推论1:不选择非树边时,答案为$2(n-1)-$直径长 比较明显就不证了 推论2:最多只会选择一条非树边 考虑如果选择两条非树边,此时必然有答案$\ge n-1+3\lceil\frac{3}\rceil$ 因为能够选择这样的非树边,则必然存在一条长度$>\f
阅读全文
摘要:[补]「WC2021」括号路径 注意到到达关系是相互的,因此可以把能够互相到达的点放到同一集合中 因此只需要考虑最简单的到达情况,发现实际上当一个点有两条同色入边时,可以将这两条边对应的点合并 对于每个集合,维护一个颜色出边的集合,可以用$\text$实现,每次合并两个点用并查集处理集合关系 然后用
阅读全文
摘要:「CEOI2018」斐波那契表示法 思路:维护当前数值的唯一表示法,然后根据唯一表示法来确定答案 Part1 唯一表示法 任何一个数$x$有唯一表示$P_i$,满足$x=\sum F_,P_i<P_{i+1}-1$ 即不会出现相邻两项 依次插入每一个数$x$,考虑可能出现的情况 1.$x$一位以及前
阅读全文
摘要:「JOI 2021 Final」地牢 3 判定无解 无解即:\(\exists i\in[S,T-1],A_i>U\) 是一个简单的区间最值问题 $$\ $$ \(O(nm)\) 关于用单调队列之类的东西维护每个点权值的方法这里就不提了 形式化地,我们把一层层点放到数轴上,令$X_i=\sum_{j
阅读全文
摘要:「ROI 2016 Day1」人烟之山 题目大意: 有$n$段折线,$m$个查询点$A$(在折线以上),设折线拐点为$X_i$ 求折线上在查询点投影两边最近的位置$B$,且直线$AB$与折线有非边缘的交点 (即从$A$点看过来会被折线遮住) 题目分析: $B,C$点满足的条件就是其旁边的直线$L$在
阅读全文
摘要:「ROI 2019 Day2」模式串查找 (口胡) 设$S=\sum |w_i|$ 显然我们需要一个树形数据结构来维护题目中添加字符的操作 归纳一下,需要实现的操作就是: 1.添加一个新串 2.在当前串中分裂一段区间$[L,R]$ 3.将一个串复制$k$次 将每一个单字符视为一个节点,考虑用一个可持
阅读全文
摘要:「ROI 2018 Day 2」无进位加法 题目大意: 给出二进制数$a_1,\ldots a_n$,对于$b_1\ldots b_n$ 满足$a_i\leq b_i$,\(\bigoplus b_i=\sum b_i\),其中$\bigoplus $为异或和 求$\sum b_i$最小值 设长度量
阅读全文
摘要:「ROI 2018 Day 1」Innophone (分块+斜率优化) 首先可以想到对于$x_i$排序,枚举$a$为某一个$x_i$,那么可以将余下的部分分给$b$计算贡献 如果将$y_i$倒序排成$A_i,i\in [1,k]$,那么枚举$b$为某一个$A_i$时的贡献就是$i\cdot A_i$
阅读全文
摘要:「CodePlus 2017 11 月赛」Yazid 的新生舞会 最基本的分析这里只保留:\(cnt>\frac{len}{2}\Rightarrow 2cnt>len\) 对于每一个合法的区间,合法的众数显然只有一个 考虑对于每一个众数计算答案,把$x$出现的位置拿出来成一个序列$A_i$ 如果选
阅读全文
摘要:Codechef November Chanllenge 2019 Div1 PrettyBox (贪心,线段树) 原题链接 前言:这篇文章主要讲如何用线段树优化贪心,关于贪心的证明建议看官方题解 贪心思路: 首先肯定要按照$(S_i,P_i)$递增的顺序排序 每次选取两个点,一个标记为左括号,权值
阅读全文
摘要:「2019 集训队互测 Day 1」最短路径 (点分治+NTT/FFT+线段树) 题意:给定了一棵基环树,求所有的$d(u,v)^k$的期望 当$k$较小时,可以想到用斯特林数/二项式定理展开 维护+1操作,对于树的可以从儿子合并上来,对于环上可以枚举每个块求得答案 复杂度为$O(nk)$ 当图为一
阅读全文
摘要:[USACO 2020 February Platinum]Help Yourself 真的很套路。。。 考虑将区间$(L_i,R_i)$按照左端点排序,依次考虑每个区间的贡献 令$dp_i$表示当前所有选择的右端点中最大的为$i$时的方案数 加入区间$(L,R)$时 1.所有$i<L$的部分一定会
阅读全文
摘要:COCI2013-2014 Contest#1 F SLASTIČAR 其实挺妙的一个数据结构题 题意: 给定一个A串,对于查询的每个$B$串,从头开始匹配匹配$A$的每个后缀,每次匹配失败的代价是$\text+1$可,匹配成功的代价是$|B|$,且立即停止,求代价总和 设$A$串长为$n$,查询个
阅读全文
摘要:2014多校6 Another Letter Tree 4种做法略解 点分治做法 就裸地离个线,放到点分治上,从每个根开始,维护$dp_{u,l,r}\(表示这条链匹配了序列中\)[l,r]$的部分 注意dp数组要一正一反,俩家伙一个含根一个不含 查询要合并两个dp数组,但是只需要知道$dp_{1,
阅读全文
摘要:[COCI2010-2011#7] UPIT 约定:视$n,q$同阶 看一下题目的操作 1.区间赋值 2.区间差分加 3.插入元素 4.区间查询 我们知道1,2操作都是可以用懒标记维护的,具体过程可能有一点细节 1.记录区间差分加的过程,要记录等差数列首项和公差,两个等差数列相加直接首项和公差都相加
阅读全文
摘要:最小树形图 | 最小内向森林 最小树形图 对于带权有向图$G=(V,E)$ 对于根$root$最小树形图为以$root$为根的外向树最小边权和 有根树的树形图 对于确定的$root$求最小树形图 朱刘算法 核心: 1:对于有向图上的一个非根节点,对于它的所有入边加减一个权值$v$,最优解的树形图形态
阅读全文

浙公网安备 33010602011771号