随笔分类 - 精选题目
这里是作者刷过的所有题目中,个人认为质量最上乘的。
会随着作者的学习,动态删去一些太简单的内容,并添加新的更难的内容。
摘要:XX.SP16549 QTREE6 - Query on a tree VI 本题LCT全方面爆破树剖——无论是复杂度、码量、思维难度、代码难度,全都碾压树剖。并且,LCT容易模板化,但是树剖不容易——树剖搭配的线段树因题而异,而LCT只需要把$pushup$和$pushdown$稍微改改就可以直接
阅读全文
摘要:VII.[SHOI2014]三叉神经树 LCT相较于树剖,最大的优势就是可以把一条链上的东西全整到一个splay里面,不像树剖在多个重链进行合并时会有很大麻烦。更好的是,LCT复杂度是$O(n\log n)$的,树剖不仅码量大,思路复杂,复杂度还是恶心的$O(n\log^2n)$。 这题就是典型的树
阅读全文
摘要:CLIV.[CODE FESTIVAL 2017 qual C]Three Gluttons 题解
阅读全文
摘要:CL.[NOI2018] 冒泡排序 结论1.交换次数压到下界,当且仅当不存在长度大于 \(2\) 的下降子序列。 证明很简单。众所周知的是,冒泡排序的交换次数等于序列逆序对数。要压到下界,与每个点有关的逆序对数都只能为 \(|i-p_i|\),因为从 \(i\) 到 \(p_i\) 的过程中本身就要
阅读全文
摘要:CIL.[NOI2020] 制作菜品 本题有三个难点:留意到题面中的 \(n-2\leq m\);证明;想到 bitset 优化。 首先,在很隐蔽的角落,有一句话 \(n-2\leq m\leq 5000\)。假如没看到这句话,就乖乖爆零罢。 结论1. \(m\geq n-1\) 时一定有解。 要证
阅读全文
摘要:CXLVIII.[NOI2019] 机器人 首先发现每个点向左向右能到达的位置就类似笛卡尔树上一个点的代表区间,不同的是这里有多个最大值时选取最右的一个。于是我们可以想到一个DP,\(f_{[i,j],k}\) 表示区间 \([i,j]\) 的最大值恰为 \(k\) 或不大于 \(k\),两种设的方
阅读全文
摘要:CXLV.[九省联考2018]秘密袭击coat 首先先讲一种暴力但能过的方法。 很容易就会往每个值各被计算几次的方向去想。于是我们枚举每个节点,计算有多少种可能下该节点是目标节点。 为了避免相同的值的影响,我们在值相同的点间也决出一种顺序,即,若两个值相同的点在作比较,依照上文定下的那种顺序决定。
阅读全文
摘要:CXLIV.[IOI2018] meetings 会议 被人坑了说这题是CDQ分治的题,一小时想不出来开了题解发现是道DP 大概不会有人像我一样一开始想了极其诡异的DP,然后发现可以用莫队+树剖优化到 \(O(n\sqrt{n}\log^2n)\),但是这复杂度估计比 \(n^2\) 还差…… 扯远
阅读全文
摘要:CXLII.CF1158F Density of subarrays 题解
阅读全文
摘要:CXXXV.[ZOJ3989]Triangulation 神题。 这个数据范围很难不让人想到状压DP。于是我们考虑应该怎么设计状态。 考虑一组三角剖分的形态:其必定是在所有点所构成的凸包内部划分出很多三角形。这也就表明,任何一组三角剖分一定包含所有凸包上的边。 我们可以想到一个比较简洁的DP:设 \
阅读全文
摘要:CXXXIV.[BZOJ3864]Hero meet devil 我们不妨从最trival的LCS问题上想起:暴力的LCS求法是什么? 设 \(f(i,j)\) 表示一个串(不妨设为本题中要填的字符串 \(T\))的前 \(i\) 位与另一个串(即题目中给出的 \(S\))的前 \(j\) 位所构成
阅读全文
摘要:CXXXII.[GYM102268J]Jealous Split wqs二分。 首先,先讲一下wqs二分的应用条件: 对于某个函数 \(f(x)\) 和一个特定的 \(x\),要求出 \(f(x)\) 的值的复杂度是不可接受的;但是,若满足 \(f\) 是上凸/下凹的,且对于一个给定的 \(k\),
阅读全文
摘要:CXXXI.[GYM102331J]Jiry Matchings 首先,不难想到一个 \(O(n^2)\) 的树上背包:设 \(f_{i,0/1,j}\) 表示在以 \(i\) 为根的子树内,其中 \(i\) 没有被匹配/被匹配了,且整个子树中共匹配了 \(j\) 条边的最优方案。考虑优化。 我们知
阅读全文
摘要:CXXX.[GYM102904B]Dispatch Money 考虑设 \(f_i\) 表示长度为 \(i\) 的前缀的最优划分。则我们发现,有 \(f_j+\operatorname{inversion}(j+1,i)\rightarrow f_i\),其中 \(\text{inversion}\
阅读全文
摘要:CXXIX.CF559E Gerald and Path 考虑将所有线段按照固定的那一端从小往大排序,并且对线段的端点离散化。 这之后,设 \(f_{i,j}\) 表示当前处理到线段 \(i\),且所有线段中最右的那根的右端点不右于位置 \(j\)(即可以在 \(j\) 左面或与 \(j\) 重合)
阅读全文
摘要:CXXVII.[GYM102822I]Invaluable Assets 引理1.最优解法下我们会尽量选取效果为 \(\sqrt{c}\) 的肥料。 考虑每袋肥料单位效果所需费用——此为 \(\dfrac{x^2+c}{x}\)。将分数拆开并套上均值,得到最大值在 \(\sqrt{c}\) 处取到。
阅读全文
摘要:CXIII.[JLOI2016/SHOI2016]侦察守卫 神题。 见代码即可。 #include<bits/stdc++.h> using namespace std; int n,m,p,a[500100],f[500100][25],g[500100][25],res=0x3f3f3f3f;
阅读全文
摘要:LXXXII.UOJ#11. 【UTR #1】ydc的大树 很明显,如果我们令一个黑点$x$为树根,设它的“好朋友”集合为$\mathbb\(,则路径\)(x,\operatorname{\mathbb})$中所有白节点均可以使$x$不开心。这个可以用树上差分来进行路径加。现在关键是求出$\oper
阅读全文
摘要:LIII.CF285E Positions in Permutations 神题orz…… 我也是第一次听说有个叫二项式反演的神奇东西…… 它具体有两个形式: \(F(n)=\sum\limits_{i=0}^n(-1)^i\dbinom{n}{i}G(i)\Leftrightarrow G(n)=
阅读全文
摘要:XLIV.CF599E Sandy and Nuts 神题。 本题给我一个忠告:无论什么题,都要先看数据范围(废话)。 没看到$n\leq 13$之前以为是道毒瘤题,看到之后……还是毒瘤题。 因为数据范围小,可以状压。 先不考虑LCA和边的限制。设$f[x][U]$表示:在以$x$为根的子树中,选择
阅读全文

浙公网安备 33010602011771号