摘要:
对于一类字符串匹配问题: 给定长度分别为 $m,n$ 的字符串 $A,B$,给出两个相同长度的字符串匹配的定义,要求找出 $A$ 在 $B$ 中所有匹配的位置。 可能能用如下方式解决: 定义匹配函数 $C(a,b)$,使得完全匹配函数 $P(i)=\sum_{j=0}^{m-1}C(A_j,B_{i 阅读全文
摘要:
用于求数列的最短递推式。 本文参考自 https://www.cnblogs.com/jz-597/p/14983564.html。 增量法,设 $R_i$ 表示第 $i$ 个历史递推式,当前为 $R_{cnt}$。 设 $\Delta$ 表示真实的 $a_i$ 与用 $R_{cnt}$ 求出的 $ 阅读全文
摘要:
题意:给出一个由数字组成的字符串,让你求这个字符串里有多少个子串是 $2019$ 的倍数。 很思维的一道题目 考虑 $[l,n]$ 和 $[r,n]$ 模 $2019$ 同余 ($l\leq r$) 设 $x=[r,n]$,$k=n-r+1$,$y=[l,r)$,则可以把 $[l,n]$ 表示为 $ 阅读全文
摘要:
其实证明并不是很严谨( 我们要证明的是: 对于 $n$ 个线性无关的 $n$ 维向量 $\vec{v_1},\vec{v_2},\cdots,\vec{v_n}$,由它们能围成一个 $n$ 维平行多面体 $G={\sum_{i=1}^nk_i\vec{v_i}|k_i\in[0,1]}$。 记矩阵 阅读全文
摘要:
记号说明:$[2^k]x$ 表示数 $x$ 在二进制下第 $k$ 位(采用这个记号是来自于形式幂级数中记号 $[x^k]f(x)$ 的启发)。 规定游戏如下:给定初始局面,两个人轮流操作,每次使当前局面走到某一个后继局面(局面后继关系图给定,且是 DAG),若没有后继局面则失败(将没有后继局面的局面 阅读全文
摘要:
暴力的想法是考虑钦定每个点作为到达点并统计贡献,但显然这样会算重。 注意到会算重的到达点一定构成了一个连通块,这是一个很好的性质,方便了我们容斥:我们直接用点的贡献减去边的贡献(一条边的两个端点同时是到达点)即可,因为一个连通块满足点数减边数等于 $1$。 先考虑点的贡献,需要统计以某个点为根且深度 阅读全文
摘要:
在洛谷题解中看到了两种做法。 法一: 与zjr巨佬说的类似,我们先能观察出这个图的几个性质: 若只保留边权为 $1$ 的边,那么所有点的度数都是奇数。那么也可以得到 $n$ 为偶数。 若只保留边权为 $2$ 的边,这个图没有规律,即每个点的度数可以是奇数也可以是偶数。 原图中度数为奇数的点有偶数个。 阅读全文
摘要:
听说这玩意叫 PGF? 方便起见,令 $p_i=\frac{p_i}{\sum_jp_j}$。 设 $F_i(x)$ 表示对于第 $i$ 个开关而言,对其进行 $k$ 次操作之后,它达到目标状态的概率的 EGF(其实文字不好表达 $F_i(x)$ 的意思,因为它只是一个辅助生成函数。看下去就能理解 阅读全文
摘要:
显然只有一次询问的话,可以用点分治来实现。 但是现在我们有多组询问,还带有修改,我们只能通过动态点分治来做了。 动态点分治的主要思想:省去每次点分治求重心的过程,直接预处理出来(因为树的形态不会改变),建立点分树。那么我们每次分治时只需按照点分树上的路径走就是了。 例如,对于这么一颗树:(样例,1为 阅读全文
摘要:
题面 棋盘 题解 直接的想法是矩阵加速 DP,记录两行的 DP 状态,用一个大小为 $2n\times 2n$ 的矩阵记录,每次相当于询问一段区间的矩阵乘积,如果使用线段树维护的话是 $O(n^3q\log q)$ 的。 使用优化可以做到 $O(n^3q+n^2q\log q)$,下文算法中的优化方 阅读全文