10 2024 档案
摘要:CSP 前学习珂学,祝自己 \(while(1)\ rp++\)。 考虑求解出每种数对答案的贡献。 设 \(t=r-l+1,k_x=\sum\limits_{i=l}^r [a_i=x]\),由容斥得贡献为 \(x(2^t-2^{t-k_x})\)。 求解 \(k_x\),考虑莫队,时间复杂度为 \
阅读全文
摘要:前言 在日常的学习生活中,我们经常会遇到如下问题: 维护一个数据结构,可以插入或删除一个数、求该数排名、求排名给定的数、求一个数的前驱后继。 这种情况下,权值线段树可以不优雅的解决这个问题。为了找到更优雅、适应性更强的算法,人们发明了平衡树。平衡树已经渗透入大部分 \(OIer\) 的代码中。对于一
阅读全文
摘要:好好好,太好了这题,太好了。 首先有一点是很明显的: 对于一个合法的答案 \((i,j,k)\),必有一点 \(p\),使 \(dis(i,p)=dis(j,p)=dis(k,p)\) 且三点到 \(p\) 的路径没有交叉。 那所以考虑设 \(g_{u,d}\) 表示 \(u\) 子树内,有多少个二
阅读全文
摘要:好好好。 我们设当前处理 \(i\) 的答案,那么最后的图就可以分成两个部分:\(1\) 所在的联通块和其他,根据乘法原理,答案就是它们二者方案的乘积。 设 \(f_s\) 表示集合 \(s\) 中所有点联通时图的情况数,\(g_s\) 表示集合 \(s\) 中所有点不一定联通时图的情况数,则有:
阅读全文
摘要:有点水了…… 考虑相邻的不能放在一起,不相邻的可以,那么很容易想到转移方程: \[dp_{i,j}=\sum_{k=0}^{25}dp_{i-1,k}[j,k不相邻] \]其中 \(dp_{i,j}\) 表示填了 \(i\) 位,最后一位填 \(j\)。 那结合数据范围,显然矩阵快速幂。 时间复杂度
阅读全文
摘要:好题好题,难者不会会者不难,我是前者。 实际上加入就可以合法的数是很好计算的。考虑现在所有前缀合法串后的字符实际上都可以满足条件。 容易想到根据是否合法设置状态。设 \(f_{i,j}/g_{i,j}\) 表示现在填第 \(i\) 个数,有 \(j\) 个填了就合法的数,现在的串合法/不合法。 那么
阅读全文
摘要:之前曾经写过,但是 \(latex\) 弄不下来,直接截屏了……
阅读全文
摘要:众所周知,\(Li\ Chao\ Tree=LCT=Link\ Cut\ Tree\)。 在我们的日常学习生活中,经常会遇到以下问题: 维护一种数据结构,要求: 添加一条线段 求解 \(x=k\) 与所有线段交点中,\(y\) 最大的一个。 众所周知,线段会影响一个区间的答案。区间取 \(max+\
阅读全文