随笔分类 - loj
摘要:考虑归并排序,问题即如何合并两个序列A,B 不妨假设|A|>|B|,将A按下标奇偶性划分为A_{0}和A_{1} 将A_{0}与B归并,得到序列C 对于A_{1}中的元素,仅需与(C中)A_{0}中相邻两数间的B中元素比较 比较次数为|B|,用莫队
阅读全文
摘要:注意到边界格数=(左上)轮廓线长度-1=(右下)轮廓线长度-1 问题即在整体(右下)轮廓线中选连续q+1条,满足第一条为竖线且最后一条为横线 将两者分别标记为01,即对于序列{a_{p}},判断是否存在a_{i}=0且a_{i+q}=1 注意到$a_{0}=0,a_{
阅读全文
摘要:在树上随机选K个点,并建立虚树,称虚树上的点为关键点 **结论:**一个点到关键点最近距离的期望为O(\frac{n}{K}) 将所有点按到其距离排序,最坏情况即链的端点,此时结论是经典的 对于后两种操作,可以将两个点不断移动到父亲,直至两者相同或位于关键点 将相邻关键点间的链看作整块,每条
阅读全文
摘要:新建一条边(1,n,L),则1和n在一个点双内,且该点双外的点均不会被经过 在此基础上,考虑以下三种情况: 对于度数\le 1的点(除1,n外),同样不会被经过,不妨删除 对于度数=2的点(除1,n外),将对应两边合并(边权和相加,标记取或) 对于重边,若边权相同直接合并
阅读全文
摘要:独木舟可以看作将边定向,并在每次经过后反向,要求最终每条边方向不变 在此基础上,考虑以下两种情况: 对于出度为0的点,到达其后仅能原路返回,不妨删除 若起点出度为1,显然第一步移动唯一,移动后起点出度变为0,仅能从该边返回(并结束) 换言之,可以将该点删除并将起点移动到出边终点 重复上述
阅读全文
摘要:不妨假设a\le b\le c,并钦定连通的集合为A,B 建立dfs树,取节点k满足sz_{k}\ge a且\forall son,sz_{son}<a 删除k后,记k子树外的连通块为S,取T=\complement_{V}S,并分类讨论: 若|S|<a,则$
阅读全文
摘要:为了方便,这里将下标均+1,并在0和n+1处建立无穷高的塔 记i左右两侧第一个\ge h_{i}+\delta的塔为l_{i}和r_{i},则通信条件也即r_{i}<j且l_{j}>i 将条件转换到塔上,即集合S合法当且仅当$\forall i\in S,S\
阅读全文
摘要:注意到$$\begin{array}{ll}F_{n+m}&=F_{0}F_{n+m-2}+F_{1}F_{n+m-1}\\&=F_{0}F_{n+m-2}+F_{1}(F_{n+m-2}+F_{n+m-3})\\&=F_{1}F_{n+m-3}+F_{2}F_{n+m-2}\\&...\\&=F_
阅读全文
摘要:假设当前位于A(x,y),将坐标系按上下左右、(左/右)(上/下)分为八块 结论:存在一组最优解,每次均移动到某一块中距离(x,y)最近的某点 记d(A,B)为A到B的切比雪夫距离,即\max(|x_{A}-x_{B}|,|y_{A}-y_{B}|) 假设移动到的点为B,
阅读全文
摘要:维护一个连通块S,初始S=\{0\},考虑拓展x\not\in S 若x与S中某点相邻,则需找出S中所有与x相邻的点,并将x加入S 若x不与S中某点相邻,则需找出x到0的某条简单路径上的某点y,并拓展y 问题1:找出S中所有与x相邻
阅读全文
摘要:以下线性规划问题,可以转化为费用流: 有m个变量,有限制x_{i}\in [0,r_{i}]\cap N 有n个等式,每个等式形如\sum_{i\in U_{j}}x_{i}-\sum_{i\in V_{j}}x_{i}=C_{j} 目标函数为$\sum_{i=1}^{m}c_{i}
阅读全文
摘要:考虑a_{i}\ge 0的情况,维护可重集S=\{a_{i}\},从前往后依次确定a_{i} 令x,y分别为S中的最小和最大值,取a_{i}=\begin{cases}x&xy\le w\\y&xy>w\end{cases}并在S中删除 记$Y=\{i\mid a_{i}
阅读全文
摘要:建立AC自动机,记|x和fail_{x}分别表示x的深度(从0开始)和失配指针 记W_{x}表示以x为结束节点的字符串权值和,S_{x}=\sum_{z在(fail树中)x到根路径上}W_{z} 对于字符串s_{i},定义pos_{r}表示s_{i}[1,r]
阅读全文
摘要:枚举区间中点x,考虑L使得x为区间[x-L,x+L]的众数: 记可重集\{|i-x|\mid a_{i}=x\}中的元素依次为b_{1}\le b_{2}\le ...\le b_{k} 枚举出现次数i\in [1,k],即要求L\in [b_{i},b_{i+1})
阅读全文
摘要:关于距离,使用线段树存储,并维护哈希值以支持比较 建立点分树,并对每一个节点维护(点分树)子树内所有点到其的距离(对应的线段树) 需要将这些线段树(在原树的结构上)可持久化,进而时空复杂度均为o(n\log^{2}n) 将这o(n\log n)个距离分为o(n)组(允许重复),每一组距离
阅读全文
摘要:不妨假设L\le \sum_{|i|\le n}i\cdot a_{i},否则可以交换a_{i}和a_{-i}并将L取相反数 贪心:\forall i\le 0取a_{i}个i,\forall i>0依次取$\lfloor\frac{L-L_{now}}{i}\rfl
阅读全文
摘要:特判n为奇数的情况,显然此时答案为0 将(和)分别看作\pm 1,记a_{i}为前缀和,则合法当且仅当满足以下条件—— 存在0\le l\le r\le n(反转区间(l,r],允许为空),使得$\begin{cases}a_{r}-a_{l}=\frac{a_{n}}{
阅读全文
摘要:记cnt_{v}表示答案\ge v的区间数量,则问题即求\sum_{v\ge 1}cnt_{v} 记f_{l}表示最大的右端点r满足区间[l,r)的答案<v,则cnt_{v}={n+1\choose 2}-\sum_{l=1}^{n}(f_{l}-l) 初始v=1
阅读全文
摘要:将炸弹按坐标排序并建图,其中(i,j)\in E当且仅当|x_{i}-x_{j}|\le r_{i} 性质:\forall i\in[1,n],\{j\mid (i,j)\in E\}和\{j\mid i能到达j\}均构成连续区间 前者显然,后者考虑第一次跨过该点时根据前者即可到达该
阅读全文
摘要:对于Subtask2,考虑如下做法—— 称[l,r]为"坏区间"当且仅当\sum_{i=l}^{r}a_{i}<a_{l-1},a_{r+1}(a_{0}和a_{n+1}看作\infty) 此时,不难证明第i条鱼能存活当且仅当不存在覆盖i的坏区间(除[1,n]外) 如
阅读全文