摘要: 这是我的博客之一,CSDN博客和这个博客是我最稳定的博客。 关于我的介绍,也就不放这里了。 由于此博客死了八个月,2023年4月25日堂堂复活,所以有点奇怪。 阅读全文
posted @ 2022-08-18 19:20 DengDuck 阅读(150) 评论(1) 推荐(0) 编辑
摘要: 那么知道了这些结论,我们该怎么做题呢? 发现了没有,对于一个终点等价类的子串,它们显然是有共同的出现次数的,而这一次数可以利用结论 4 求出。 所以我们考虑用一个拓扑来做一个树形 DP,求出之后,我们在节点的 $\text {len}$ 对应的位置打标记记录答案,求一个后缀最大值即可。 为什么可以直接后缀最大值呢?参见结论 1。 阅读全文
posted @ 2023-07-05 10:56 DengDuck 阅读(19) 评论(0) 推荐(1) 编辑
摘要: 注意到相邻两数的向下取整的差值不可能大于 $1$,也就是: $$ \lfloor \frac x k\rfloor-\lfloor \frac {x-1} k\rfloor \leq 1 $$ 稍微推广一下,我们得到: $$ x-1-\lfloor \frac {x-1} k\rfloor \leq x-\lfloor \frac x k\rfloor $$ 这说明从整点来看,函数$f(x)=x-\lfloor \frac x k\rfloor$ 具有单调上升的特点。 阅读全文
posted @ 2023-07-03 21:35 DengDuck 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 首先不难想到一个贪心,就是先填出一个全黑的行,然后再用其填黑列。 而且在其中“填出一个全黑的行步数”我们应该最小化。 那么如何最小化“填出一个全黑的行步数”呢?我们发现关键所在是白点,我们可以进行操作填黑它。 我们设对应的操作为 $(x,y)$,白点为 $(a,y)$,则 $(x,a)$ 为黑。 阅读全文
posted @ 2023-07-03 20:44 DengDuck 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 首先我们要明确一个方向,就是 $\text{FFT}$ 的原理是单位根的几个性质: - 消去原理: $\omega_{tn}^{tk}=\omega_{n}^k$ - 对称原理:$\omega_{n}^{k}=-\omega_n^{k+\frac n 2}$ - $\omega_{n}^k=(\omega_n^1)^k$ - $\omega_n^i\not=\omega_n^j(i\not=j)$ 也就是说,只要满足以上条件,也就可以用类似的方法实现。 阅读全文
posted @ 2023-07-02 20:45 DengDuck 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 莫队是一种离线算法,本质上是对于询问区间的移动。如果我们保证区间移动次数较少的话,时间复杂度也会比较优秀。 阅读全文
posted @ 2023-07-01 21:27 DengDuck 阅读(34) 评论(0) 推荐(0) 编辑
摘要: T1 97pts 貌似很好写,SPFA 随便搞,交了一发,怎么才 15pts?我不服。 于是调了很久总算出来了,乘胜追击写了 T2 的 28pts,我是低能儿所以写了对顶堆+主席树。 听 stz 说写前缀和就行了。 第三题是脑瘫题,看不懂。 于是比赛草草的结束了,好像我的分是大众分,只能说区分没做好。 阅读全文
posted @ 2023-05-27 15:19 DengDuck 阅读(75) 评论(0) 推荐(0) 编辑
摘要: 种树 在长度为 $n$ 的数列中选择至少 $k$ 个数字,他们都有价值,使得没有相邻的数字被取到,且数字之和最大。 求这个最大的数字之和。 我们考虑一个反悔贪心,首先用一个链表来维护数列,然后,每次贪心的选择最大的数字,并标记左右不可用。 但是这个贪心显然是错的,我们再直接将这三个数字合并为一个,价 阅读全文
posted @ 2023-05-09 14:11 DengDuck 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 例题一 $$ \sum_{i=1}^n \lfloor\frac n i\rfloor\ $$ 首先很容易想到直接求解,对于较大的数据,$O(n)$做法无法通过。 注意到函数$y=\lfloor\dfrac n x\rfloor$的图像如下: 不难发现,随着 $x$ 增大 ,$y$单调不增,这说明对 阅读全文
posted @ 2023-05-08 19:34 DengDuck 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 离散傅里叶变换(Discrete Fourier Transform,简称DFT)的思想是利用 $\omega_n^k$将一个多项式转为点值表示法。 对于一个多项式$A(x)=a_0+a_1x+a_2x^2+...+a_{n-1}x^{n-1}$,我们按照前文所云,将所有的 $\omega_n^k$作为 $x$ 代入。 于是我们得到了 $n-1$ 个点,使用复数形式表示,成为一个数组 $(y_0,y_1,y_2,...,y_{n-1})$的。 这被称为 $A(x)$ 的傅里叶变换。 阅读全文
posted @ 2023-04-29 13:21 DengDuck 阅读(106) 评论(0) 推荐(1) 编辑
摘要: 我们都知道经典的 $O(n \log n)$ 求解 LIS 需要写一个很烦的二分,但是树状数组就不用啦。 观察动态规划转移方程: $$ f_i=\max_{a_j\leq a_i} f_j +1 $$ 注意到这就是一个二维偏序问题,所以树状数组轻松解决,对于我这种数据结构爱好者简直是福音。 阅读全文
posted @ 2023-04-29 09:53 DengDuck 阅读(96) 评论(0) 推荐(0) 编辑